* callproc.c (Fcall_process): Avoid vfork clobbering

the local vars buffer, coding_systems, current_dir.
This commit is contained in:
Paul Eggert 2011-08-03 20:08:01 -07:00
parent 19fe0c2e44
commit c74e9d8682
2 changed files with 11 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2011-08-04 Paul Eggert <eggert@cs.ucla.edu>
* callproc.c (Fcall_process): Avoid vfork clobbering
the local vars buffer, coding_systems, current_dir.
2011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
* keymap.c (Fmake_composed_keymap): Move to subr.el.

View file

@ -603,6 +603,9 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
/* vfork, and prevent local vars from being clobbered by the vfork. */
{
Lisp_Object volatile buffer_volatile = buffer;
Lisp_Object volatile coding_systems_volatile = coding_systems;
Lisp_Object volatile current_dir_volatile = current_dir;
int volatile fd1_volatile = fd1;
int volatile fd_error_volatile = fd_error;
int volatile fd_output_volatile = fd_output;
@ -611,6 +614,9 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
pid = vfork ();
buffer = buffer_volatile;
coding_systems = coding_systems_volatile;
current_dir = current_dir_volatile;
fd1 = fd1_volatile;
fd_error = fd_error_volatile;
fd_output = fd_output_volatile;