... | ... |
@@ -1,3 +1,8 @@ |
1 |
+Fri Dec 17 17:10:46 CET 2010 (acab) |
|
2 |
+----------------------------------- |
|
3 |
+ * shared/cdiff.c: Fix error path double free - missed in 4bc4581d |
|
4 |
+ thanks Michael Tautschnig <mt*debian.org> |
|
5 |
+ |
|
1 | 6 |
Fri Dec 17 14:21:21 CET 2010 (acab) |
2 | 7 |
----------------------------------- |
3 | 8 |
* clamav-milter/whitelist.c, clamscan/manager.c, libclamav/sis.c: |
... | ... |
@@ -995,8 +995,16 @@ int cdiff_apply(int fd, unsigned short mode) |
995 | 995 |
logg("!cdiff_apply: Can't resize line buffer to %d bytes\n", line_size); |
996 | 996 |
cdiff_ctx_free(&ctx); |
997 | 997 |
fclose(fh); |
998 |
- free(line); |
|
999 |
- free(lbuf); |
|
998 |
+ if(!r1 && !r2) { |
|
999 |
+ free(line); |
|
1000 |
+ free(lbuf); |
|
1001 |
+ } else if(!r1) { |
|
1002 |
+ free(line); |
|
1003 |
+ free(r2); |
|
1004 |
+ } else { |
|
1005 |
+ free(r1); |
|
1006 |
+ free(lbuf); |
|
1007 |
+ } |
|
1000 | 1008 |
return -1; |
1001 | 1009 |
} |
1002 | 1010 |
line = r1; |