aboutsummaryrefslogtreecommitdiff
path: root/jim-interactive.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2016-09-07 13:59:05 +1000
committerSteve Bennett <steveb@workware.net.au>2016-09-07 14:07:08 +1000
commita2d73e8bf2ec754f98daeba0f1450cdc75f421f9 (patch)
treea2715f98edf5e97e349b24e3c72984104507faf8 /jim-interactive.c
parent3b0b2e2ad6bdc1ab341107e9488537b3bf9bd106 (diff)
downloadjimtcl-a2d73e8bf2ec754f98daeba0f1450cdc75f421f9.zip
jimtcl-a2d73e8bf2ec754f98daeba0f1450cdc75f421f9.tar.gz
jimtcl-a2d73e8bf2ec754f98daeba0f1450cdc75f421f9.tar.bz2
jim-intereactive: reduce permissions on saved history file
When creating ~/.jim_history, set permissions to 0600 for security Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-interactive.c')
-rw-r--r--jim-interactive.c5
1 files changed, 5 insertions, 0 deletions
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
}