Module Name:    src
Committed By:   rillig
Date:           Thu Nov  5 23:24:48 UTC 2020

Modified Files:
        src/usr.bin/make: var.c

Log Message:
make(1): fix parameter name in ApplyModifiersIndirect and ApplyModifiers

The variable must be properly initialized before these functions are
called.


To generate a diff of this commit:
cvs rdiff -u -r1.664 -r1.665 src/usr.bin/make/var.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/var.c
diff -u src/usr.bin/make/var.c:1.664 src/usr.bin/make/var.c:1.665
--- src/usr.bin/make/var.c:1.664	Thu Nov  5 21:16:20 2020
+++ src/usr.bin/make/var.c	Thu Nov  5 23:24:47 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.664 2020/11/05 21:16:20 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.665 2020/11/05 23:24:47 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -130,7 +130,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.664 2020/11/05 21:16:20 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.665 2020/11/05 23:24:47 rillig Exp $");
 
 #define VAR_DEBUG1(fmt, arg1) DEBUG1(VAR, fmt, arg1)
 #define VAR_DEBUG2(fmt, arg1, arg2) DEBUG2(VAR, fmt, arg1, arg2)
@@ -3266,7 +3266,7 @@ static ApplyModifiersIndirectResult
 ApplyModifiersIndirect(
 	ApplyModifiersState *const st,
 	const char **const inout_p,
-	void **const out_freeIt
+	void **const inout_freeIt
 ) {
     const char *p = *inout_p;
     const char *mods;
@@ -3300,7 +3300,7 @@ ApplyModifiersIndirect(
 	const char *rval_pp = mods;
 	st->val = ApplyModifiers(&rval_pp, st->val, '\0', '\0', st->v,
 				 &st->exprFlags, st->ctxt, st->eflags,
-				 out_freeIt);
+				 inout_freeIt);
 	if (st->val == var_Error || st->val == varUndefined ||
 	    *rval_pp != '\0') {
 	    free(mods_freeIt);
@@ -3334,7 +3334,7 @@ ApplyModifiers(
     VarExprFlags *const exprFlags,
     GNode *const ctxt,		/* for looking up and modifying variables */
     VarEvalFlags const eflags,
-    void **const out_freeIt	/* free this after using the return value */
+    void **const inout_freeIt	/* free this after using the return value */
 ) {
     ApplyModifiersState st = {
 	startc, endc, v, ctxt, eflags,
@@ -3364,7 +3364,7 @@ ApplyModifiers(
 
 	if (*p == '$') {
 	    ApplyModifiersIndirectResult amir;
-	    amir = ApplyModifiersIndirect(&st, &p, out_freeIt);
+	    amir = ApplyModifiersIndirect(&st, &p, inout_freeIt);
 	    if (amir == AMIR_CONTINUE)
 		continue;
 	    if (amir == AMIR_OUT)
@@ -3403,13 +3403,13 @@ ApplyModifiers(
 	    LogAfterApply(&st, p, mod);
 
 	if (st.newVal != st.val) {
-	    if (*out_freeIt) {
+	    if (*inout_freeIt != NULL) {
 		free(st.val);
-		*out_freeIt = NULL;
+		*inout_freeIt = NULL;
 	    }
 	    st.val = st.newVal;
 	    if (st.val != var_Error && st.val != varUndefined)
-		*out_freeIt = st.val;
+		*inout_freeIt = st.val;
 	}
 	if (*p == '\0' && st.endc != '\0') {
 	    Error("Unclosed variable specification (expecting '%c') "
@@ -3437,8 +3437,8 @@ bad_modifier:
 
 cleanup:
     *pp = p;
-    free(*out_freeIt);
-    *out_freeIt = NULL;
+    free(*inout_freeIt);
+    *inout_freeIt = NULL;
     *exprFlags = st.exprFlags;
     return var_Error;
 }

Reply via email to