[subset] Fix blob leak of _subset2 when returns early
Fixes https://crbug.com/oss-fuzz/16639
diff --git a/src/hb-subset.cc b/src/hb-subset.cc
index 6235a5b..c0752ac 100644
--- a/src/hb-subset.cc
+++ b/src/hb-subset.cc
@@ -82,6 +82,7 @@
if (unlikely (!buf.alloc (buf_size)))
{
DEBUG_MSG(SUBSET, nullptr, "OT::%c%c%c%c failed to allocate %u bytes.", HB_UNTAG (tag), buf_size);
+ hb_blob_destroy (source_blob);
return false;
}
retry:
@@ -96,6 +97,7 @@
if (unlikely (!buf.alloc (buf_size)))
{
DEBUG_MSG(SUBSET, nullptr, "OT::%c%c%c%c failed to reallocate %u bytes.", HB_UNTAG (tag), buf_size);
+ hb_blob_destroy (source_blob);
return false;
}
goto retry;