From 9c5765ead465cb95e9a49c3a4b580ea2421ca8b2 Mon Sep 17 00:00:00 2001 From: aCaB Date: Fri, 17 Dec 2010 17:12:31 +0100 Subject: [PATCH] error path dbl free in cdiff.c --- ChangeLog | 5 +++++ shared/cdiff.c | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d5e54821b..a267ce69f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Dec 17 17:10:46 CET 2010 (acab) +----------------------------------- + * shared/cdiff.c: Fix error path double free - missed in 4bc4581d + thanks Michael Tautschnig + Fri Dec 17 14:21:21 CET 2010 (acab) ----------------------------------- * clamav-milter/whitelist.c, clamscan/manager.c, libclamav/sis.c: diff --git a/shared/cdiff.c b/shared/cdiff.c index f6d29bdd0..927cf803b 100644 --- a/shared/cdiff.c +++ b/shared/cdiff.c @@ -995,8 +995,16 @@ int cdiff_apply(int fd, unsigned short mode) logg("!cdiff_apply: Can't resize line buffer to %d bytes\n", line_size); cdiff_ctx_free(&ctx); fclose(fh); - free(line); - free(lbuf); + if(!r1 && !r2) { + free(line); + free(lbuf); + } else if(!r1) { + free(line); + free(r2); + } else { + free(r1); + free(lbuf); + } return -1; } line = r1;