[Server/Registry] Memleak of tmp in save_branch's errorpath
Peter Berg Larsen
pebl at math.ku.dk
Wed Mar 9 16:22:44 CST 2005
Changelog:
Tmp was not freed in case of errors in save_branch(...).
Index: server/registry.c
===================================================================
RCS file: /home/wine/wine/server/registry.c,v
retrieving revision 1.62
diff -u -r1.62 registry.c
--- server/registry.c 24 Feb 2005 19:43:53 -0000 1.62
+++ server/registry.c 9 Mar 2005 21:53:43 -0000
@@ -1611,7 +1611,7 @@
{
sprintf( p, "reg%lx%04x.tmp", (long) getpid(), count++ );
if ((fd = open( tmp, O_CREAT | O_EXCL | O_WRONLY, 0666 )) != -1) break;
- if (errno != EEXIST) goto done;
+ if (errno != EEXIST) goto done_tmp;
close( fd );
}
@@ -1622,7 +1622,7 @@
{
if (tmp) unlink( tmp );
close( fd );
- goto done;
+ goto done_tmp;
}
if (debug_level > 1)
@@ -1639,9 +1639,10 @@
/* if successfully written, rename to final name */
if (ret) ret = !rename( tmp, path );
if (!ret) unlink( tmp );
- free( tmp );
}
+done_tmp:
+ if (tmp) free(tmp);
done:
if (real) free( real );
if (ret) make_clean( key );
More information about the wine-patches
mailing list