aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-08-03 20:08:01 -0700
committerPaul Eggert2011-08-03 20:08:01 -0700
commitc74e9d8682a27211336db9745f7b4d6399929b37 (patch)
tree2be2294a289e908d85c9fd9d2968a84922801f45 /src
parent19fe0c2e44466a0b9457ef11d23ce0b6e18baa99 (diff)
downloademacs-c74e9d8682a27211336db9745f7b4d6399929b37.tar.gz
emacs-c74e9d8682a27211336db9745f7b4d6399929b37.zip
* callproc.c (Fcall_process): Avoid vfork clobbering
the local vars buffer, coding_systems, current_dir.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/callproc.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 726ef7bce90..1ad53741533 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12011-08-04 Paul Eggert <eggert@cs.ucla.edu>
2
3 * callproc.c (Fcall_process): Avoid vfork clobbering
4 the local vars buffer, coding_systems, current_dir.
5
12011-08-03 Stefan Monnier <monnier@iro.umontreal.ca> 62011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * keymap.c (Fmake_composed_keymap): Move to subr.el. 8 * keymap.c (Fmake_composed_keymap): Move to subr.el.
diff --git a/src/callproc.c b/src/callproc.c
index f148f6233d4..3a91be3d8da 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -603,6 +603,9 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
603 603
604 /* vfork, and prevent local vars from being clobbered by the vfork. */ 604 /* vfork, and prevent local vars from being clobbered by the vfork. */
605 { 605 {
606 Lisp_Object volatile buffer_volatile = buffer;
607 Lisp_Object volatile coding_systems_volatile = coding_systems;
608 Lisp_Object volatile current_dir_volatile = current_dir;
606 int volatile fd1_volatile = fd1; 609 int volatile fd1_volatile = fd1;
607 int volatile fd_error_volatile = fd_error; 610 int volatile fd_error_volatile = fd_error;
608 int volatile fd_output_volatile = fd_output; 611 int volatile fd_output_volatile = fd_output;
@@ -611,6 +614,9 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
611 614
612 pid = vfork (); 615 pid = vfork ();
613 616
617 buffer = buffer_volatile;
618 coding_systems = coding_systems_volatile;
619 current_dir = current_dir_volatile;
614 fd1 = fd1_volatile; 620 fd1 = fd1_volatile;
615 fd_error = fd_error_volatile; 621 fd_error = fd_error_volatile;
616 fd_output = fd_output_volatile; 622 fd_output = fd_output_volatile;