diff src/dmres.c @ 1937:a137e49e9f0d

Fix a silly memory leak in stdio support of DMResource, also fix a related double-free issue caused by the first change.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 29 Jun 2018 00:26:13 +0300
parents e69de47d2419
children 6e28a33ed851
line wrap: on
line diff
--- a/src/dmres.c	Thu Jun 28 23:02:53 2018 +0300
+++ b/src/dmres.c	Fri Jun 29 00:26:13 2018 +0300
@@ -711,7 +711,7 @@
     dm_mem_fwrite,
 
     NULL,
-    dmResourceFree,
+    NULL,
     NULL
 };
 
@@ -853,8 +853,9 @@
 
     if (handle->fh == NULL)
     {
+        int error = handle->error;
         dmResourceFree(handle);
-        return handle->error;
+        return error;
     }
 
     dmResourceRef(handle);
@@ -885,6 +886,9 @@
 
     if (handle->fops->fclose != NULL)
         handle->fops->fclose(handle);
+
+    if (handle->lib == NULL)
+        dmResourceFree(handle);
 }