From 419920288ceb6525beb7d74a6a12e91e3e6deada Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Thu, 26 May 2022 13:29:59 +0200 Subject: [PATCH] log/pcap: open handles outside of lock --- src/log-pcap.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/log-pcap.c b/src/log-pcap.c index ebd99342ab..6510dc69ad 100644 --- a/src/log-pcap.c +++ b/src/log-pcap.c @@ -421,25 +421,18 @@ static int PcapLogOpenHandles(PcapLogData *pl, const Packet *p) { PCAPLOG_PROFILE_START; + int datalink = p->datalink; if (IS_TUNNEL_PKT(p) && !IS_TUNNEL_ROOT_PKT(p)) { Packet *real_p = p->root; SCMutexLock(&real_p->tunnel_mutex); - SCLogDebug("Setting pcap-log link type to %u", real_p->datalink); - if (pl->pcap_dead_handle == NULL) { - if ((pl->pcap_dead_handle = pcap_open_dead(real_p->datalink, PCAP_SNAPLEN)) == NULL) { - SCLogDebug("Error opening dead pcap handle"); - SCMutexUnlock(&real_p->tunnel_mutex); - return TM_ECODE_FAILED; - } - } + datalink = real_p->datalink; SCMutexUnlock(&real_p->tunnel_mutex); - } else { - SCLogDebug("Setting pcap-log link type to %u", p->datalink); - if (pl->pcap_dead_handle == NULL) { - if ((pl->pcap_dead_handle = pcap_open_dead(p->datalink, PCAP_SNAPLEN)) == NULL) { - SCLogDebug("Error opening dead pcap handle"); - return TM_ECODE_FAILED; - } + } + if (pl->pcap_dead_handle == NULL) { + SCLogDebug("Setting pcap-log link type to %u", datalink); + if ((pl->pcap_dead_handle = pcap_open_dead(datalink, PCAP_SNAPLEN)) == NULL) { + SCLogDebug("Error opening dead pcap handle"); + return TM_ECODE_FAILED; } } -- 2.47.2