mingw: work around mingw mkdir

mingw doesn't come with a posix compliant mkdir as it only takes
a single argument.
pull/3112/head
Victor Julien 8 years ago
parent 223d9a1e3a
commit d8ddd3b5bc

@ -229,6 +229,7 @@
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"

@ -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) {

@ -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");

@ -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));

@ -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) {

@ -367,6 +367,12 @@
#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,

@ -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) {

@ -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;
}

Loading…
Cancel
Save