NetBSD-Bugs archive

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

Re: bin/54574: usr.bin/make/parse.c $Id: 1.231 drops core on NetBSD-5.2 in realpath(3)



The following reply was made to PR toolchain/54574; it has been noted by GNATS.

From: Brian Buhrow <buhrow%nfbcal.org@localhost>
To: "Simon J. Gerraty" <sjg%juniper.net@localhost>
Cc: <gnats-bugs%netbsd.org@localhost>, <gnats-admin%netbsd.org@localhost>,
        <netbsd-bugs%netbsd.org@localhost>, buhrow%nfbcal.org@localhost
Subject: Re: bin/54574: usr.bin/make/parse.c $Id: 1.231 drops core on NetBSD-5.2 in realpath(3)
Date: Thu, 26 Sep 2019 13:59:21 -0700

 	Hello Simon.  The latest patch, V1.232 + your latest patch, works just
 fine.  I think you can commit that.  Or, if you want, I can commit it.
 -thanks
 -Brian
 
 On Sep 26, 12:57pm, "Simon J. Gerraty" wrote:
 } Subject: Re: bin/54574: usr.bin/make/parse.c $Id: 1.231 drops core on NetB
 } Brian Buhrow <buhrow%nfbcal.org@localhost> wrote:
 } 
 } > 	hello.  Here is the stack trace.  I don't have debugging symbols in
 } > the binaries, but this should give you an idea.
 } > Let me know if you need anything else.
 } 
 } Thanks.
 } Odd. By the time vfprintf is called we are already done with reporting
 } the makefile path.
 } 
 } Oh never mind, we should not be attempting to free return from realpath.
 } Can you please try the patch below.
 } 
 } Index: parse.c
 } ===================================================================
 } RCS file: /cvsroot/src/usr.bin/make/parse.c,v
 } retrieving revision 1.232
 } diff -u -p -r1.232 parse.c
 } --- parse.c	9 Apr 2019 18:28:10 -0000	1.232
 } +++ parse.c	26 Sep 2019 19:55:44 -0000
 } @@ -670,6 +670,7 @@ ParseVErrorInternal(FILE *f, const char 
 }      const char *fmt, va_list ap)
 }  {
 }  	static Boolean fatal_warning_error_printed = FALSE;
 } +	char dirbuf[MAXPATHLEN+1];
 }  
 }  	(void)fprintf(f, "%s: ", progname);
 }  
 } @@ -688,9 +689,7 @@ ParseVErrorInternal(FILE *f, const char 
 }  			if (dir == NULL)
 }  				dir = ".";
 }  			if (*dir != '/') {
 } -				dir = cp2 = realpath(dir, NULL);
 } -				free(cp);
 } -				cp = cp2; /* cp2 set to NULL by Var_Value */
 } +				dir = realpath(dir, dirbuf);
 }  			}
 }  			fname = Var_Value(".PARSEFILE", VAR_GLOBAL, &cp2);
 }  			if (fname == NULL) {
 >-- End of excerpt from "Simon J. Gerraty"
 
 


Home | Main Index | Thread Index | Old Index