comparison src/process.c @ 910:34362f9d6d61

[xemacs-hg @ 2002-07-09 11:56:04 by michaels] 2002-07-08 Mike Sperber <mike@xemacs.org> * process.c (Fstart_process_internal): Do error checking before we fork off the child, so the child can't muck with the state of the parent.
author michaels
date Tue, 09 Jul 2002 11:56:04 +0000
parents 804517e16990
children c925bacdda60
comparison
equal deleted inserted replaced
909:a703d313962d 910:34362f9d6d61
692 { 692 {
693 /* This function can call lisp */ 693 /* This function can call lisp */
694 Lisp_Object buffer, stderr_buffer, name, program, process, current_dir; 694 Lisp_Object buffer, stderr_buffer, name, program, process, current_dir;
695 int separate_stderr; 695 int separate_stderr;
696 Lisp_Object tem; 696 Lisp_Object tem;
697 int i;
697 int speccount = specpdl_depth (); 698 int speccount = specpdl_depth ();
698 struct gcpro gcpro1, gcpro2, gcpro3; 699 struct gcpro gcpro1, gcpro2, gcpro3;
699 700
700 name = args[0]; 701 name = args[0];
701 buffer = args[1]; 702 buffer = args[1];
728 if (!NILP (stderr_buffer)) 729 if (!NILP (stderr_buffer))
729 stderr_buffer = Fget_buffer_create (stderr_buffer); 730 stderr_buffer = Fget_buffer_create (stderr_buffer);
730 731
731 CHECK_STRING (name); 732 CHECK_STRING (name);
732 CHECK_STRING (program); 733 CHECK_STRING (program);
734 for (i = 3; i < nargs; ++i)
735 CHECK_STRING (args[i]);
733 736
734 /* Make sure that the child will be able to chdir to the current 737 /* Make sure that the child will be able to chdir to the current
735 buffer's current directory, or its unhandled equivalent. [[ We 738 buffer's current directory, or its unhandled equivalent. [[ We
736 can't just have the child check for an error when it does the 739 can't just have the child check for an error when it does the
737 chdir, since it's in a vfork. ]] -- not any more, we don't use 740 chdir, since it's in a vfork. ]] -- not any more, we don't use