make_directory used mode as if it were an signed entity, but in fact
it was a mode_t which is unsigned. Fix it to be signed...
-Erik
diff --git a/include/libbb.h b/include/libbb.h
index df52027..70ac36a 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -259,7 +259,7 @@
char *dirname (const char *path);
-int make_directory (char *path, mode_t mode, int flags);
+int make_directory (char *path, long mode, int flags);
const char *u_signal_names(const char *str_sig, int *signo, int startnum);
diff --git a/libbb/libbb.h b/libbb/libbb.h
index df52027..70ac36a 100644
--- a/libbb/libbb.h
+++ b/libbb/libbb.h
@@ -259,7 +259,7 @@
char *dirname (const char *path);
-int make_directory (char *path, mode_t mode, int flags);
+int make_directory (char *path, long mode, int flags);
const char *u_signal_names(const char *str_sig, int *signo, int startnum);
diff --git a/libbb/make_directory.c b/libbb/make_directory.c
index 54d9b4c..0a9d7b1 100644
--- a/libbb/make_directory.c
+++ b/libbb/make_directory.c
@@ -33,7 +33,7 @@
* Also create parent directories as necessary if flags contains
* FILEUTILS_RECUR. */
-int make_directory (char *path, mode_t mode, int flags)
+int make_directory (char *path, long mode, int flags)
{
if (!(flags & FILEUTILS_RECUR)) {
if (mkdir (path, 0777) < 0) {