From: Victor Julien Date: Mon, 30 May 2022 19:08:19 +0000 (+0200) Subject: log-pcap: remove tunnel locks X-Git-Tag: suricata-7.0.0-beta1~542 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F7445%2Fhead;p=thirdparty%2Fsuricata.git log-pcap: remove tunnel locks The tunnel lock mutex only "protects" the tunnel synchronization, not the packet data, length or datalink fields. --- diff --git a/src/log-pcap.c b/src/log-pcap.c index 6510dc69ad..982c3acaa2 100644 --- a/src/log-pcap.c +++ b/src/log-pcap.c @@ -424,9 +424,7 @@ static int PcapLogOpenHandles(PcapLogData *pl, const Packet *p) int datalink = p->datalink; if (IS_TUNNEL_PKT(p) && !IS_TUNNEL_ROOT_PKT(p)) { Packet *real_p = p->root; - SCMutexLock(&real_p->tunnel_mutex); datalink = real_p->datalink; - SCMutexUnlock(&real_p->tunnel_mutex); } if (pl->pcap_dead_handle == NULL) { SCLogDebug("Setting pcap-log link type to %u", datalink); @@ -616,11 +614,9 @@ static int PcapLog (ThreadVars *t, void *thread_data, const Packet *p) pl->h->ts.tv_usec = p->ts.tv_usec; if (IS_TUNNEL_PKT(p) && !IS_TUNNEL_ROOT_PKT(p)) { rp = p->root; - SCMutexLock(&rp->tunnel_mutex); pl->h->caplen = GET_PKT_LEN(rp); pl->h->len = GET_PKT_LEN(rp); len = sizeof(*pl->h) + GET_PKT_LEN(rp); - SCMutexUnlock(&rp->tunnel_mutex); } else { pl->h->caplen = GET_PKT_LEN(p); pl->h->len = GET_PKT_LEN(p); @@ -705,11 +701,9 @@ static int PcapLog (ThreadVars *t, void *thread_data, const Packet *p) pl->h->ts.tv_usec = p->ts.tv_usec; if (IS_TUNNEL_PKT(p) && !IS_TUNNEL_ROOT_PKT(p)) { rp = p->root; - SCMutexLock(&rp->tunnel_mutex); pl->h->caplen = GET_PKT_LEN(rp); pl->h->len = GET_PKT_LEN(rp); len = sizeof(*pl->h) + GET_PKT_LEN(rp); - SCMutexUnlock(&rp->tunnel_mutex); } else { pl->h->caplen = GET_PKT_LEN(p); pl->h->len = GET_PKT_LEN(p); @@ -720,13 +714,11 @@ static int PcapLog (ThreadVars *t, void *thread_data, const Packet *p) if (IS_TUNNEL_PKT(p) && !IS_TUNNEL_ROOT_PKT(p)) { rp = p->root; - SCMutexLock(&rp->tunnel_mutex); #ifdef HAVE_LIBLZ4 ret = PcapWrite(pl, comp, GET_PKT_DATA(rp), len); #else ret = PcapWrite(pl, NULL, GET_PKT_DATA(rp), len); #endif - SCMutexUnlock(&rp->tunnel_mutex); } else { #ifdef HAVE_LIBLZ4 ret = PcapWrite(pl, comp, GET_PKT_DATA(p), len); diff --git a/src/stream-tcp-list.c b/src/stream-tcp-list.c index 19558587d1..708a9cb490 100644 --- a/src/stream-tcp-list.c +++ b/src/stream-tcp-list.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2016 Open Information Security Foundation +/* Copyright (C) 2007-2022 Open Information Security Foundation * * You can copy, redistribute or modify this Program under the terms of * the GNU General Public License version 2 as published by the Free @@ -621,9 +621,7 @@ static void StreamTcpSegmentAddPacketData( if (IS_TUNNEL_PKT(p) && !IS_TUNNEL_ROOT_PKT(p)) { Packet *rp = p->root; - SCMutexLock(&rp->tunnel_mutex); StreamTcpSegmentAddPacketDataDo(seg, rp, p); - SCMutexUnlock(&rp->tunnel_mutex); } else { StreamTcpSegmentAddPacketDataDo(seg, p, p); }