Re: make(1) is broken

From: Steve Kargl <sgk_at_troutmask.apl.washington.edu>
Date: Wed, 8 Dec 2004 17:06:58 -0800
On Wed, Dec 08, 2004 at 04:07:10PM -0800, Steve Kargl wrote:
> 
> troutmask:root[225] find /usr/obj/ -name make.core 
> /usr/obj/usr/src/sys/SPEW/make.core
> troutmask:root[226] gdb /usr/bin/make /usr/obj/usr/src/sys/SPEW/make.core
> 
> #0  Lst_Remove (list=0x5580a0, ln=0x0)
>     at /usr/src/usr.bin/make/lst.lib/lstRemove.c:74
> 74          if (ln->nextPtr != NULL)
> (gdb) bt
> #0  Lst_Remove (list=0x5580a0, ln=0x0)
>     at /usr/src/usr.bin/make/lst.lib/lstRemove.c:74
> #1  0x00000000004052bb in Dir_Destroy (pp=0x81e780)
>     at /usr/src/usr.bin/make/dir.c:1143
> #2  0x0000000000405300 in Dir_ClearPath (path=0x5580a0)
>     at /usr/src/usr.bin/make/dir.c:1172
> #3  0x0000000000404283 in Dir_End () at /usr/src/usr.bin/make/dir.c:265
> #4  0x000000000040a8da in main (argc=2, argv=0x7fffffffe3e0)
>     at /usr/src/usr.bin/make/main.c:888
> 

Looking at the diff between the 1.17 and 1.16, I suspect this chunk
of code in Lst_Remove:

-    if (!Lst_Valid(list) || !Lst_NodeValid(ln, list)) {
-	    return (FAILURE);
-    }

should have been replaced by

    if (list == NULL || ln == NULL)
	    return;


-- 
Steve
Received on Thu Dec 09 2004 - 00:06:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:24 UTC