[subset] fixes infinite loop in hb_set_get_max().

Fixes https://oss-fuzz.com/testcase-detail/5363902507515904
diff --git a/src/hb-set.hh b/src/hb-set.hh
index 6840dde..9404ba2 100644
--- a/src/hb-set.hh
+++ b/src/hb-set.hh
@@ -832,7 +832,7 @@
   hb_codepoint_t get_max () const
   {
     unsigned int count = pages.length;
-    for (int i = count - 1; i >= 0; i++)
+    for (int i = count - 1; i >= 0; i--)
       if (!page_at (i).is_empty ())
 	return page_map[(unsigned) i].major * page_t::PAGE_BITS + page_at (i).get_max ();
     return INVALID;
diff --git a/test/api/test-set.c b/test/api/test-set.c
index eb690b8..30a4767 100644
--- a/test/api/test-set.c
+++ b/test/api/test-set.c
@@ -121,6 +121,11 @@
   hb_set_del (s, 800);
   g_assert (!hb_set_has (s, 800));
 
+  g_assert_cmpint (hb_set_get_max (s), ==, 799);
+
+  hb_set_del_range (s, 0, 799);
+  g_assert_cmpint (hb_set_get_max (s), ==, HB_SET_VALUE_INVALID);
+
   hb_set_destroy (s);
 }
 
@@ -501,7 +506,7 @@
 
   for (unsigned i = 0; i < n; i++)
     hb_set_del_range (s, ranges[i].b, ranges[i].e);
-    
+
   hb_set_del_range (s, P*13+5, P*15-10);	/* Deletion from deleted pages. */
 
   for (unsigned i = 0; i < n; i++)
diff --git a/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5363902507515904 b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5363902507515904
new file mode 100644
index 0000000..1ad7971
--- /dev/null
+++ b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5363902507515904
Binary files differ