make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Interrupt/Exception caught (code = 0xc0000005, addr = 0x77c478ac)


From: Eli Zaretskii
Subject: Re: Interrupt/Exception caught (code = 0xc0000005, addr = 0x77c478ac)
Date: Mon, 14 Sep 2009 23:17:03 +0300

> Date: Mon, 14 Sep 2009 12:56:10 -0700 (PDT)
> From: duanec <address@hidden>
> Cc: 
> 
> 
> The latest distribution, make-3.81-20090911-mingw32-bin, has a problem
> resulting in: Interrupt/Exception caught (code = 0xc0000005, addr =
> 0x420c2a)
> 
> In my (limited tests) the "triggering" condition seems to be:
>     Have _no_ PATH
>     Call GNU make
>     Makefile calls $(shell) function.

Funny that you should report it, because a patch to fix this bug was
submitted just yesterday.  Here it is:

2009-09-14  Rafi Einstein  <address@hidden>  (tiny patch)

        * w32/subproc/sub_proc.c (process_begin): Check *ep non-NULL
        inside the loop that looks up environment for PATH.


Index: w32/subproc/sub_proc.c
===================================================================
RCS file: /sources/make/make/w32/subproc/sub_proc.c,v
retrieving revision 1.19
diff -u -r1.19 sub_proc.c
--- w32/subproc/sub_proc.c      14 Mar 2009 14:42:06 -0000      1.19
+++ w32/subproc/sub_proc.c      14 Sep 2009 18:17:21 -0000
@@ -441,13 +441,14 @@
        /* Use the Makefile's value of PATH to look for the program to
           execute, because it could be different from Make's PATH
           (e.g., if the target sets its own value.  */
-       for (ep = envp; ep; ep++) {
-               if (strncmp (*ep, "PATH=", 5) == 0
-                   || strncmp (*ep, "Path=", 5) == 0) {
-                       path_var = *ep + 5;
-                       break;
+       if (envp)
+               for (ep = envp; *ep; ep++) {
+                       if (strncmp (*ep, "PATH=", 5) == 0
+                           || strncmp (*ep, "Path=", 5) == 0) {
+                               path_var = *ep + 5;
+                               break;
+                       }
                }
-       }
        exec_handle = find_file(exec_path, path_var,
                                exec_fname, sizeof(exec_fname));
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]