From: Wang King Date: Wed, 12 Apr 2017 08:44:04 +0000 (+0800) Subject: util: Fix resource leak X-Git-Tag: v3.2.1~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=268c7e085aa5dd615b1bd1f8800de0c7eee3dd0e;p=thirdparty%2Flibvirt.git util: Fix resource leak The virRotatingFileWriterAppend method leaks the file->entry on the virRotatingFileWriterEntryNew failing path. (cherry picked from commit 123770cd4e2d8a0a6166ec93175ddd96c9029947) --- diff --git a/src/util/virrotatingfile.c b/src/util/virrotatingfile.c index 914472970b..83a695f6fb 100644 --- a/src/util/virrotatingfile.c +++ b/src/util/virrotatingfile.c @@ -483,18 +483,19 @@ virRotatingFileWriterAppend(virRotatingFileWriterPtr file, if ((file->entry->pos == file->maxlen && len) || forceRollover) { - virRotatingFileWriterEntryPtr tmp = file->entry; + virRotatingFileWriterEntryPtr tmp; VIR_DEBUG("Hit max size %zu on %s (force=%d)\n", file->maxlen, file->basepath, forceRollover); if (virRotatingFileWriterRollover(file) < 0) return -1; - if (!(file->entry = virRotatingFileWriterEntryNew(file->basepath, - file->mode))) + if (!(tmp = virRotatingFileWriterEntryNew(file->basepath, + file->mode))) return -1; - virRotatingFileWriterEntryFree(tmp); + virRotatingFileWriterEntryFree(file->entry); + file->entry = tmp; } }