]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
mingw: work around mingw mkdir
authorVictor Julien <victor@inliniac.net>
Sat, 15 Jul 2017 07:40:11 +0000 (09:40 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 20 Dec 2017 15:23:31 +0000 (16:23 +0100)
mingw doesn't come with a posix compliant mkdir as it only takes
a single argument.

configure.ac
src/log-filestore.c
src/log-pcap.c
src/log-tcp-data.c
src/log-tlsstore.c
src/suricata-common.h
src/unix-manager.c
src/util-logopenfile.c

index 1b94f7851a3e4aafcf985293ac118f5b36231157..f70275b5bd744a323b734a1f85c73ede8258c217 100644 (file)
             LDFLAGS="${LDFLAGS} -lws2_32"
             WINDOWS_PATH="yes"
             PCAP_LIB_NAME="wpcap"
+            AC_DEFINE([HAVE_NON_POSIX_MKDIR], [1], [mkdir is not POSIX compliant: single arg])
             ;;
         *-*-cygwin)
             LUA_PC_NAME="lua"
index 6b2c0f55e5afe56720e5b474462c891a612d7b68..f8f84616c87df48ef818df6f2ed1ee2f3b559cd4 100644 (file)
@@ -507,7 +507,7 @@ static TmEcode LogFilestoreLogThreadInit(ThreadVars *t, const void *initdata, vo
     struct stat stat_buf;
     if (stat(g_logfile_base_dir, &stat_buf) != 0) {
         int ret;
-        ret = mkdir(g_logfile_base_dir, S_IRWXU|S_IXGRP|S_IRGRP);
+        ret = SCMkDir(g_logfile_base_dir, S_IRWXU|S_IXGRP|S_IRGRP);
         if (ret != 0) {
             int err = errno;
             if (err != EEXIST) {
index 869c0ff3febefc8dfc49bd7ef28fb1a242886873..0fcf5c7f593951ab4ce6caca0ad285910f782106 100644 (file)
@@ -1234,11 +1234,8 @@ static int PcapLogOpenFileCtx(PcapLogData *pl)
         }
 
         /* if mkdir fails file open will fail, so deal with errors there */
-#ifndef OS_WIN32
-        (void)mkdir(dirfull, 0700);
-#else
-        (void)mkdir(dirfull);
-#endif
+        (void)SCMkDir(dirfull, 0700);
+
         if ((pf->dirname = SCStrdup(dirfull)) == NULL) {
             SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory for "
                        "directory name");
index 068e738eb0c1a13db85abbbc98bee55b9ed4e017..9be178a8a7366d7d0b080f07e1b15c622dea1013 100644 (file)
@@ -295,11 +295,7 @@ OutputCtx *LogTcpDataLogInitCtx(ConfNode *conf)
         SCLogInfo("using directory %s", dirfull);
 
         /* if mkdir fails file open will fail, so deal with errors there */
-#ifndef OS_WIN32
-        (void)mkdir(dirfull, 0700);
-#else
-        (void)mkdir(dirfull);
-#endif
+        (void)SCMkDir(dirfull, 0700);
     }
 
     OutputCtx *output_ctx = SCCalloc(1, sizeof(OutputCtx));
index 79f3c881f618ad4587631435573e9a1c79304604..1e6573c93f0dbfec268f820c04e20491d5dcd269 100644 (file)
@@ -311,7 +311,7 @@ static TmEcode LogTlsStoreLogThreadInit(ThreadVars *t, const void *initdata, voi
     if (stat(tls_logfile_base_dir, &stat_buf) != 0) {
         int ret;
         /* coverity[toctou] */
-        ret = mkdir(tls_logfile_base_dir, S_IRWXU|S_IXGRP|S_IRGRP);
+        ret = SCMkDir(tls_logfile_base_dir, S_IRWXU|S_IXGRP|S_IRGRP);
         if (ret != 0) {
             int err = errno;
             if (err != EEXIST) {
index 50a5ade86bd81fa77c7791d82a2e99f28e8300e3..4e73fe5612fac1ed46e478535e742d9c75bba101 100644 (file)
 
 #define WARN_UNUSED __attribute__((warn_unused_result))
 
+#ifndef HAVE_NON_POSIX_MKDIR
+    #define SCMkDir(a, b) mkdir(a, b)
+#else
+    #define SCMkDir(a, b) mkdir(a)
+#endif
+
 typedef enum PacketProfileDetectId_ {
     PROF_DETECT_IPONLY,
     PROF_DETECT_RULES,
index e401ec57b7f2fb2b969a19c7a82e8707e75838e3..91b593788693029dd1775430e39008e720c907fe 100644 (file)
@@ -133,7 +133,7 @@ static int UnixNew(UnixCommand * this)
         /* coverity[toctou] */
         if (stat(SOCKET_PATH, &stat_buf) != 0) {
             /* coverity[toctou] */
-            ret = mkdir(SOCKET_PATH, S_IRWXU|S_IXGRP|S_IRGRP);
+            ret = SCMkDir(SOCKET_PATH, S_IRWXU|S_IXGRP|S_IRGRP);
             if (ret != 0) {
                 int err = errno;
                 if (err != EEXIST) {
index d9b1cc4e0a5294afda7f5955c9faa897ad88a161..92540812b561012615a7f842e88d9b5c6f0d5639 100644 (file)
@@ -265,7 +265,7 @@ static int SCLogCreateDirectoryTree(const char *filepath)
             /* Truncate, while creating directory */
             *p = '\0';
 
-            if (mkdir(pathbuf, S_IRWXU | S_IRGRP | S_IXGRP) != 0) {
+            if (SCMkDir(pathbuf, S_IRWXU | S_IRGRP | S_IXGRP) != 0) {
                 if (errno != EEXIST) {
                     return -1;
                 }