diff options
| author | Eli Zaretskii | 2012-12-05 19:39:39 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2012-12-05 19:39:39 +0200 |
| commit | 7c2fcf9bad2bed6c0198875384dc2bdb7cbd7e99 (patch) | |
| tree | 0c6c3111399e34dd12e6a976934615810878be67 /src | |
| parent | d3cefd1358e021cc4d510afb18916b067e6b1419 (diff) | |
| download | emacs-7c2fcf9bad2bed6c0198875384dc2bdb7cbd7e99.tar.gz emacs-7c2fcf9bad2bed6c0198875384dc2bdb7cbd7e99.zip | |
Don't pass un-encoded file name to mkstemp.
src/callproc.c (Fcall_process_region): Encode expanded temp file
pattern before passing it to mkstemp or mktemp.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 2 | ||||
| -rw-r--r-- | src/callproc.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e71667f7dcf..106333ac8ed 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -3,6 +3,8 @@ | |||
| 3 | * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp | 3 | * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp |
| 4 | fails, signal an error instead of continuing with an empty | 4 | fails, signal an error instead of continuing with an empty |
| 5 | string. (Bug#13079) | 5 | string. (Bug#13079) |
| 6 | Encode expanded temp file pattern before passing it to mkstemp or | ||
| 7 | mktemp. | ||
| 6 | 8 | ||
| 7 | 2012-12-04 Eli Zaretskii <eliz@gnu.org> | 9 | 2012-12-04 Eli Zaretskii <eliz@gnu.org> |
| 8 | 10 | ||
diff --git a/src/callproc.c b/src/callproc.c index ce3b11af696..d152da19f7b 100644 --- a/src/callproc.c +++ b/src/callproc.c | |||
| @@ -959,8 +959,9 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r | |||
| 959 | { | 959 | { |
| 960 | USE_SAFE_ALLOCA; | 960 | USE_SAFE_ALLOCA; |
| 961 | Lisp_Object pattern = Fexpand_file_name (Vtemp_file_name_pattern, tmpdir); | 961 | Lisp_Object pattern = Fexpand_file_name (Vtemp_file_name_pattern, tmpdir); |
| 962 | char *tempfile = SAFE_ALLOCA (SBYTES (pattern) + 1); | 962 | Lisp_Object encoded_tem = ENCODE_FILE (pattern); |
| 963 | memcpy (tempfile, SDATA (pattern), SBYTES (pattern) + 1); | 963 | char *tempfile = SAFE_ALLOCA (SBYTES (encoded_tem) + 1); |
| 964 | memcpy (tempfile, SDATA (encoded_tem), SBYTES (encoded_tem) + 1); | ||
| 964 | coding_systems = Qt; | 965 | coding_systems = Qt; |
| 965 | 966 | ||
| 966 | #ifdef HAVE_MKSTEMP | 967 | #ifdef HAVE_MKSTEMP |