jpl@allegra.UUCP (John P. Linderman) (08/23/84)
SYSNOPSIS: make sometimes dumps core with a memory fault or segmentation fault REPEAT BY: Turn the following four lines into a makefile, and run make -nd foo:main.o cc main.o -o foo main.o:a/*.h When I do it, I get doname(foo,0) doname(main.o,1) sh: 24665 Memory fault - core dumped Neither the -n nor the -d are essential to generate the dump. The bug seems to depend on the presence of the directory reference in the dependency for main.o. FIX: A quick runthrough with a version of make made with -g revealed that function expand() in file /usr/src/bin/make/doname.c was being invoked with a NULL depname pointer. I didn't dig into the code to determine how the NULL pointer got to expand(), but adding the following check to expand() around lines 282-287 eliminates the core dumping and causes make to operate correctly. --- 282,288 ----- char *s1; struct depblock *p, *srchdir(); + if (q->depname == NULL) return; s1 = q->depname->namep; for(s=s1 ; ;) switch(*s++) { John P. Linderman Break Make Department allegra!jpl