pcap-log: fix memory leak on error paths after SCStrdup(prefix)

When PcapLogDataCopy() fails after duplicating pl->prefix,
the allocated 'prefix' string was not freed, leading to a leak.

Ticket: 7759
pull/13483/head
Boris Tonofa 1 year ago committed by Victor Julien
parent 17ed6f7b8e
commit 97bfa3b108

@ -785,6 +785,7 @@ static PcapLogData *PcapLogDataCopy(const PcapLogData *pl)
copy_comp->buffer = SCMalloc(copy_comp->buffer_size);
if (copy_comp->buffer == NULL) {
SCLogError("SCMalloc failed: %s", strerror(errno));
SCFree(copy->prefix);
SCFree(copy->h);
SCFree(copy);
return NULL;
@ -793,6 +794,7 @@ static PcapLogData *PcapLogDataCopy(const PcapLogData *pl)
if (copy_comp->pcap_buf == NULL) {
SCLogError("SCMalloc failed: %s", strerror(errno));
SCFree(copy_comp->buffer);
SCFree(copy->prefix);
SCFree(copy->h);
SCFree(copy);
return NULL;
@ -803,6 +805,7 @@ static PcapLogData *PcapLogDataCopy(const PcapLogData *pl)
SCLogError("SCFmemopen failed: %s", strerror(errno));
SCFree(copy_comp->buffer);
SCFree(copy_comp->pcap_buf);
SCFree(copy->prefix);
SCFree(copy->h);
SCFree(copy);
return NULL;
@ -817,6 +820,7 @@ static PcapLogData *PcapLogDataCopy(const PcapLogData *pl)
fclose(copy_comp->pcap_buf_wrapper);
SCFree(copy_comp->buffer);
SCFree(copy_comp->pcap_buf);
SCFree(copy->prefix);
SCFree(copy->h);
SCFree(copy);
return NULL;

Loading…
Cancel
Save