From: Eli Zaretskii Date: Wed, 5 Dec 2012 17:39:39 +0000 (+0200) Subject: Don't pass un-encoded file name to mkstemp. X-Git-Tag: emacs-24.2.91~44 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7c2fcf9bad2bed6c0198875384dc2bdb7cbd7e99;p=emacs.git 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. --- diff --git a/src/ChangeLog b/src/ChangeLog index e71667f7dcf..106333ac8ed 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -3,6 +3,8 @@ * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp fails, signal an error instead of continuing with an empty string. (Bug#13079) + Encode expanded temp file pattern before passing it to mkstemp or + mktemp. 2012-12-04 Eli Zaretskii 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 { USE_SAFE_ALLOCA; Lisp_Object pattern = Fexpand_file_name (Vtemp_file_name_pattern, tmpdir); - char *tempfile = SAFE_ALLOCA (SBYTES (pattern) + 1); - memcpy (tempfile, SDATA (pattern), SBYTES (pattern) + 1); + Lisp_Object encoded_tem = ENCODE_FILE (pattern); + char *tempfile = SAFE_ALLOCA (SBYTES (encoded_tem) + 1); + memcpy (tempfile, SDATA (encoded_tem), SBYTES (encoded_tem) + 1); coding_systems = Qt; #ifdef HAVE_MKSTEMP