diff options
author | Steve Bennett <steveb@workware.net.au> | 2014-08-03 17:40:11 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2014-08-03 17:51:58 +1000 |
commit | 0b60827ba7bbbefd991a99dfcae4973d51387f82 (patch) | |
tree | f18569cddf2770bf8b108f60f1354c560c459c4e /jim-exec.c | |
parent | a07760e95c68569b635ecc97465175d9a306ff37 (diff) | |
download | jimtcl-0b60827ba7bbbefd991a99dfcae4973d51387f82.zip jimtcl-0b60827ba7bbbefd991a99dfcae4973d51387f82.tar.gz jimtcl-0b60827ba7bbbefd991a99dfcae4973d51387f82.tar.bz2 |
Temporary file creation should respect $TMPDIR
This applies to [exec] and [file tempfile]
Reported-by: Jakub Wilk
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-exec.c')
-rw-r--r-- | jim-exec.c | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -1576,15 +1576,13 @@ static int JimRewindFd(int fd) static int JimCreateTemp(Jim_Interp *interp, const char *contents, int len) { - char inName[] = "/tmp/tcl.tmp.XXXXXX"; - mode_t mask = umask(S_IXUSR | S_IRWXG | S_IRWXO); - int fd = mkstemp(inName); - umask(mask); + int fd = Jim_MakeTempFile(interp, NULL); + if (fd == JIM_BAD_FD) { Jim_SetResultErrno(interp, "couldn't create temp file"); return -1; } - unlink(inName); + unlink(Jim_String(Jim_GetResult(interp))); if (contents) { if (write(fd, contents, len) != len) { Jim_SetResultErrno(interp, "couldn't write temp file"); |