Fix unlikely leaks
diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 6670d9a..1026d68 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -496,8 +496,10 @@
     return nullptr;
 
   error = FT_Load_Sfnt_Table (ft_face, tag, 0, buffer, &length);
-  if (error)
+  if (error) {
+    free ((void*)buffer);
     return nullptr;
+  }
 
   return hb_blob_create ((const char *) buffer, length,
 			 HB_MEMORY_MODE_WRITABLE,
diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc
index 6696ad8..70c9c63 100644
--- a/src/hb-ot-shape.cc
+++ b/src/hb-ot-shape.cc
@@ -193,8 +193,10 @@
 
   if (plan->shaper->data_create) {
     plan->data = plan->shaper->data_create (plan);
-    if (unlikely (!plan->data))
+    if (unlikely (!plan->data)) {
+      free ((void*)plan);
       return nullptr;
+    }
   }
 
   return plan;