From: Max Fillinger Date: Mon, 11 Mar 2019 09:51:00 +0000 (+0100) Subject: pcap-log: Don't leak memory in LZ4 error paths X-Git-Tag: suricata-5.0.0-beta1~114 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=081fdc68049d8f26d2ab9aacb19a187c98b5b2f4;p=thirdparty%2Fsuricata.git pcap-log: Don't leak memory in LZ4 error paths --- diff --git a/src/log-pcap.c b/src/log-pcap.c index a31e786939..65b888f28b 100644 --- a/src/log-pcap.c +++ b/src/log-pcap.c @@ -650,6 +650,8 @@ static PcapLogData *PcapLogDataCopy(const PcapLogData *pl) if (copy_comp->buffer == NULL) { SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed: %s", strerror(errno)); + SCFree(copy->h); + SCFree(copy); return NULL; } copy_comp->pcap_buf = SCMalloc(copy_comp->pcap_buf_size); @@ -657,6 +659,8 @@ static PcapLogData *PcapLogDataCopy(const PcapLogData *pl) SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed: %s", strerror(errno)); SCFree(copy_comp->buffer); + SCFree(copy->h); + SCFree(copy); return NULL; } copy_comp->pcap_buf_wrapper = SCFmemopen(copy_comp->pcap_buf, @@ -665,6 +669,8 @@ static PcapLogData *PcapLogDataCopy(const PcapLogData *pl) SCLogError(SC_ERR_FOPEN, "SCFmemopen failed: %s", strerror(errno)); SCFree(copy_comp->buffer); SCFree(copy_comp->pcap_buf); + SCFree(copy->h); + SCFree(copy); return NULL; } @@ -679,6 +685,8 @@ static PcapLogData *PcapLogDataCopy(const PcapLogData *pl) fclose(copy_comp->pcap_buf_wrapper); SCFree(copy_comp->buffer); SCFree(copy_comp->pcap_buf); + SCFree(copy->h); + SCFree(copy); return NULL; }