]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
pcap: address codeql warning
authorVictor Julien <vjulien@oisf.net>
Wed, 24 Apr 2024 07:46:11 +0000 (09:46 +0200)
committerVictor Julien <victor@inliniac.net>
Fri, 26 Apr 2024 18:59:42 +0000 (20:59 +0200)
Use of potentially dangerous function: localtime

Windows localtime is thread safe and no localtime_r is availabe on
Windows, so use separate logic for Windows.

src/source-pcap-file-directory-helper.c

index 59c2116f99dfa08c935561e26a3caaf176291bf9..91e40f6e7a5d5ae846ae06d5774c7f034e317923 100644 (file)
@@ -483,7 +483,15 @@ TmEcode PcapDirectoryDispatch(PcapFileDirectoryVars *ptv)
     struct timespec older_than;
     memset(&older_than, 0, sizeof(struct timespec));
     older_than.tv_sec = LONG_MAX;
-    uint32_t poll_seconds = (uint32_t)localtime(&ptv->poll_interval)->tm_sec;
+    uint32_t poll_seconds;
+#ifndef OS_WIN32
+    struct tm safe_tm;
+    memset(&safe_tm, 0, sizeof(safe_tm));
+    poll_seconds = (uint32_t)localtime_r(&ptv->poll_interval, &safe_tm)->tm_sec;
+#else
+    /* windows localtime is threadsafe */
+    poll_seconds = (uint32_t)localtime(&ptv->poll_interval)->tm_sec;
+#endif
 
     if (ptv->should_loop) {
         GetTime(&older_than);