changeset 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 73c513f536d0
children a8e475eede4a
files src/dmres.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
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);
 }