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)



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) {


Home | Main Index | Thread Index | Old Index