# HG changeset patch # User Eli Zaretskii # Date 965024969 0 # Node ID 861a1460eba695a97cb2ef86a14f017f30922bae # Parent 788ce16426e377e0c769783a5c9064107d780837 (child_setup) [MSDOS]: malloc pwd_var instead of using alloca; free it after run_msdos_command returns diff -r 788ce16426e3 -r 861a1460eba6 src/callproc.c --- a/src/callproc.c Mon Jul 31 06:24:21 2000 +0000 +++ b/src/callproc.c Mon Jul 31 06:29:29 2000 +0000 @@ -1072,7 +1072,14 @@ register int i; i = STRING_BYTES (XSTRING (current_dir)); +#ifdef MSDOS + /* MSDOS must have all environment variables malloc'ed, because + low-level libc functions that launch subsidiary processes rely + on that. */ + pwd_var = (char *) xmalloc (i + 6); +#else pwd_var = (char *) alloca (i + 6); +#endif temp = pwd_var + 4; bcopy ("PWD=", pwd_var, 4); bcopy (XSTRING (current_dir)->data, temp, i); @@ -1212,6 +1219,7 @@ #ifdef MSDOS pid = run_msdos_command (new_argv, pwd_var + 4, in, out, err, env); + free (pwd_var); if (pid == -1) /* An error occurred while trying to run the subprocess. */ report_file_error ("Spawning child process", Qnil);