+2014-09-07 Eli Zaretskii <eliz@gnu.org>
+
+ * callproc.c (child_setup) [WINDOWSNT]: Don't call exec_failed if
+ 'alloca' gets passed arguments larger than MAX_ALLOCA.
+
+ * font.c (MAX): Define if not defined elsewhere.
+
2014-09-07 Paul Eggert <eggert@cs.ucla.edu>
* keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca
on that. */
pwd_var = xmalloc (i + 5);
#else
+ /* WINDOWSNT doesn't define exec_failed, and doesn't need this
+ test, since a directory name cannot be longer than 260
+ characters, i.e. 260 * 4 = 1040 UTF-8 bytes. */
+#ifndef WINDOWSNT
if (MAX_ALLOCA - 5 < i)
exec_failed (new_argv[0], ENOMEM);
+#endif
pwd_var = alloca (i + 5);
#endif
temp = pwd_var + 4;
}
/* new_length + 2 to include PWD and terminating 0. */
+#ifndef WINDOWSNT
if (MAX_ALLOCA / sizeof *env - 2 < new_length)
exec_failed (new_argv[0], ENOMEM);
+#endif
env = new_env = alloca ((new_length + 2) * sizeof *env);
/* If we have a PWD envvar, pass one down,
but with corrected value. */
if (STRINGP (display))
{
+ char *vdata;
+
+ /* WINDOWSNT doesn't have $DISPLAY. */
+#ifndef WINDOWSNT
if (MAX_ALLOCA - sizeof "DISPLAY=" < SBYTES (display))
exec_failed (new_argv[0], ENOMEM);
- char *vdata = alloca (sizeof "DISPLAY=" + SBYTES (display));
+#endif
+ vdata = alloca (sizeof "DISPLAY=" + SBYTES (display));
strcpy (vdata, "DISPLAY=");
strcat (vdata, SSDATA (display));
new_env = add_env (env, new_env, vdata);