aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jim-aio.c8
-rw-r--r--jim-interactive.c5
-rw-r--r--jim-win32compat.h4
3 files changed, 10 insertions, 7 deletions
diff --git a/jim-aio.c b/jim-aio.c
index fb8577f..f36acdd 100644
--- a/jim-aio.c
+++ b/jim-aio.c
@@ -1865,14 +1865,8 @@ int Jim_MakeTempFile(Jim_Interp *interp, const char *template)
filenameObj = Jim_NewStringObj(interp, template, -1);
}
-#if defined(S_IRWXG) && defined(S_IRWXO)
- mask = umask(S_IXUSR | S_IRWXG | S_IRWXO);
-#else
- /* MinGW does not have group/owner permissions */
- mask = umask(S_IXUSR);
-#endif
-
/* Update the template name directly with the filename */
+ mask = umask(S_IXUSR | S_IRWXG | S_IRWXO);
fd = mkstemp(filenameObj->bytes);
umask(mask);
if (fd < 0) {
diff --git a/jim-interactive.c b/jim-interactive.c
index 78f5470..1d16ce0 100644
--- a/jim-interactive.c
+++ b/jim-interactive.c
@@ -7,6 +7,7 @@
#ifdef USE_LINENOISE
#ifdef HAVE_UNISTD_H
#include <unistd.h>
+ #include <sys/stat.h>
#endif
#include "linenoise.h"
#else
@@ -56,7 +57,11 @@ void Jim_HistoryAdd(const char *line)
void Jim_HistorySave(const char *filename)
{
#ifdef USE_LINENOISE
+ mode_t mask;
+ /* Just u=rw, but note that this is only effective for newly created files */
+ mask = umask(S_IXUSR | S_IRWXG | S_IRWXO);
linenoiseHistorySave(filename);
+ mask = umask(mask);
#endif
}
diff --git a/jim-win32compat.h b/jim-win32compat.h
index edd29c3..2ef8d85 100644
--- a/jim-win32compat.h
+++ b/jim-win32compat.h
@@ -21,6 +21,10 @@ char *dlerror(void);
#define JIM_SPRINTF_DOUBLE_NEEDS_FIX
#endif
+/* MinGW does not have group/owner permissions */
+#define S_IRWXG 0
+#define S_IRWXO 0
+
#ifdef _MSC_VER
/* These are msvc vs gcc */