[apparmor] [patch 07/18] parser: pull forward free() calls [resend]

Steve Beattie steve at nxnw.org
Thu Jan 16 22:06:15 UTC 2014


As noted by Seth Arnold, in expand_by_alternations() if our set
variable has at least one value, then we're going to rewrite the entry,
so rather than sprinkle the free()s near where the reallocation occurs,
use one free() once we're guaranteed to need to do so.

Signed-off-by: Steve Beattie <steve at nxnw.org>
---
 parser/parser_variable.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: b/parser/parser_variable.c
===================================================================
--- a/parser/parser_variable.c
+++ b/parser/parser_variable.c
@@ -177,10 +177,11 @@ static int expand_by_alternations(struct
 		exit(1);
 	}
 
+	free(*name);
+
 	value = get_next_set_value(valuelist);
 	if (!value) {
 		/* only one entry for the variable, so just sub it in */
-		free(*name);
 		if (asprintf(name, "%s%s%s",
 			     split_var->prefix ? split_var->prefix : "",
 			     first_value,
@@ -201,7 +202,6 @@ static int expand_by_alternations(struct
 		write_replacement(',', value, replacement, filter_leading_slash, filter_trailing_slash);
 	}
 
-	free(*name);
 	if (asprintf(name, "%s%s}%s",
 		     split_var->prefix ? split_var->prefix : "",
 		     replacement.c_str(),




More information about the AppArmor mailing list