Author: abrander
Date: 2011-09-21 20:24:38 +0200 (Wed, 21 Sep 2011)
New Revision: 4043

Modified:
   trunk/librawstudio/rs-rawfile.c
Log:
Fixed memory leaking problem with raw_open_file() when mmap() and friends fail 
(Reported by Ille).

Modified: trunk/librawstudio/rs-rawfile.c
===================================================================
--- trunk/librawstudio/rs-rawfile.c     2011-09-18 14:49:32 UTC (rev 4042)
+++ trunk/librawstudio/rs-rawfile.c     2011-09-21 18:24:38 UTC (rev 4043)
@@ -251,6 +251,7 @@
 
        if ((rawfile->maphandle = CreateFileMapping(rawfile->filehandle, NULL, 
PAGE_READONLY, 0, 0, NULL))==NULL)
        {
+               CloseHandle(rawfile->filehandle);
                g_free(rawfile);
                return(NULL);
        }
@@ -258,6 +259,8 @@
        rawfile->map = MapViewOfFile(rawfile->maphandle, FILE_MAP_READ, 0, 0, 
rawfile->size);
        if (rawfile->map == NULL)
        {
+               CloseHandle(rawfile->filehandle);
+               CloseHandle(rawfile->maphandle);
                g_free(rawfile);
                return(NULL);
        }
@@ -271,6 +274,7 @@
        rawfile->map = mmap(NULL, rawfile->size, PROT_READ, MAP_SHARED, fd, 0);
        if(rawfile->map == MAP_FAILED)
        {
+               close(fd);
                g_free(rawfile);
                return(NULL);
        }


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to