Fix leak when duplicating blob
diff --git a/src/hb-blob.c b/src/hb-blob.c
index b4eccb6..3afad8a 100644
--- a/src/hb-blob.c
+++ b/src/hb-blob.c
@@ -366,9 +366,11 @@
       fprintf (stderr, "%p %s: dupped successfully -> %p\n", blob, __FUNCTION__, blob->data);
 #endif
       memcpy (new_data, blob->data, blob->length);
-      blob->data = new_data;
-      blob->mode = HB_MEMORY_MODE_WRITABLE;
       _hb_blob_destroy_user_data (blob);
+      blob->mode = HB_MEMORY_MODE_WRITABLE;
+      blob->data = new_data;
+      blob->destroy = free;
+      blob->user_data = new_data;
     }
   }
   else if (blob->mode == HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE)