]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
pcap-file: add missing atomic init 1336/head
authorEric Leblond <eric@regit.org>
Thu, 12 Feb 2015 21:27:07 +0000 (22:27 +0100)
committerEric Leblond <eric@regit.org>
Thu, 12 Feb 2015 21:33:55 +0000 (22:33 +0100)
It is mandatory to init all atomic to avoid problem on system
without atomic support.

src/runmode-pcap-file.c
src/source-pcap-file.c
src/source-pcap-file.h

index d4edc07c62d8dd054f23db5fd12cbd3c6720b92b..2f713678ab39bbc17c5eee7979a773d939232303 100644 (file)
@@ -24,6 +24,8 @@
 #include "output.h"
 #include "detect-engine-mpm.h"
 
+#include "source-pcap-file.h"
+
 #include "alert-fastlog.h"
 #include "alert-prelude.h"
 #include "alert-unified2-alert.h"
@@ -77,6 +79,8 @@ int RunModeFilePcapSingle(DetectEngineCtx *de_ctx)
     RunModeInitialize();
     TimeModeSetOffline();
 
+    PcapFileGlobalInit();
+
     /* create the threads */
     ThreadVars *tv = TmThreadCreatePacketHandler("PcapFile",
                                                  "packetpool", "packetpool",
@@ -327,6 +331,8 @@ int RunModeFilePcapAutoFp(DetectEngineCtx *de_ctx)
 
     TimeModeSetOffline();
 
+    PcapFileGlobalInit();
+
     /* Available cpus */
     uint16_t ncpus = UtilCpuGetNumProcessorsOnline();
 
index d03582d0fb30d28dd1e183e3b1f7c7a3ee619eba..7a612f520a8559d1e98f18f64b7de0add802cb17 100644 (file)
@@ -129,7 +129,13 @@ void TmModuleDecodePcapFileRegister (void) {
     tmm_modules[TMM_DECODEPCAPFILE].flags = TM_FLAG_DECODE_TM;
 }
 
-void PcapFileCallbackLoop(char *user, struct pcap_pkthdr *h, u_char *pkt) {
+void PcapFileGlobalInit()
+{
+    SC_ATOMIC_INIT(pcap_g.invalid_checksums);
+}
+
+void PcapFileCallbackLoop(char *user, struct pcap_pkthdr *h, u_char *pkt)
+{
     SCEnter();
 
     PcapFileThreadVars *ptv = (PcapFileThreadVars *)user;
index 636cbdeb6da34bc498490f0628978149e48c927b..fa76a1a8f8e791764b93c28f3b157ec89f536dc5 100644 (file)
@@ -29,5 +29,7 @@ void TmModuleDecodePcapFileRegister (void);
 
 void PcapIncreaseInvalidChecksum();
 
+void PcapFileGlobalInit();
+
 #endif /* __SOURCE_PCAP_FILE_H__ */