aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2017-01-02 07:22:15 -0500
committerJames McCoy <jamessan@jamessan.com>2017-01-02 20:12:47 -0500
commitbfb5180627fb1ac88780d775fb975f84459cb752 (patch)
tree17632bba4004aad9cef3356a412983d1ec8e3e75 /src
parentefe1476d4293170496f0e933a4d3c955f0559b03 (diff)
downloadrneovim-bfb5180627fb1ac88780d775fb975f84459cb752.tar.gz
rneovim-bfb5180627fb1ac88780d775fb975f84459cb752.tar.bz2
rneovim-bfb5180627fb1ac88780d775fb975f84459cb752.zip
vim-patch:7.4.1889
Problem: When umask is set to 0177 Vim can't create temp files. (Lcd) Solution: Also correct umask when using mkdtemp(). https://github.com/vim/vim/commit/35d88f4e2ff5dcd9904f04612d5febede996137c
Diffstat (limited to 'src')
-rw-r--r--src/nvim/fileio.c6
-rw-r--r--src/nvim/version.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index 529b48adbd..1c96481389 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -51,6 +51,7 @@
#include "nvim/window.h"
#include "nvim/shada.h"
#include "nvim/os/os.h"
+#include "nvim/os/os_defs.h"
#include "nvim/os/time.h"
#include "nvim/os/input.h"
@@ -5224,6 +5225,10 @@ static void vim_maketempdir(void)
// Try the entries in `TEMP_DIR_NAMES` to create the temp directory.
char_u template[TEMP_FILE_PATH_MAXLEN];
char_u path[TEMP_FILE_PATH_MAXLEN];
+
+ // Make sure the umask doesn't remove the executable bit.
+ // "repl" has been reported to use "0177".
+ mode_t umask_save = umask(0077);
for (size_t i = 0; i < ARRAY_SIZE(temp_dirs); i++) {
// Expand environment variables, leave room for "/nvimXXXXXX/999999999"
expand_env((char_u *)temp_dirs[i], template, TEMP_FILE_PATH_MAXLEN - 22);
@@ -5247,6 +5252,7 @@ static void vim_maketempdir(void)
os_rmdir((char *)path);
}
}
+ (void)umask(umask_save);
}
/// Delete "name" and everything in it, recursively.
diff --git a/src/nvim/version.c b/src/nvim/version.c
index f6f984bc8b..21f1db8191 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -551,7 +551,7 @@ static int included_patches[] = {
1892,
// 1891 NA
// 1890 NA
- // 1889,
+ 1889,
// 1888 NA
// 1887 NA
// 1886 NA