Messages in this thread Patch in this message | | | From | Namhyung Kim <> | Subject | [PATCH 02/11] parse-events: Fix freeing arg on process_dynamic_array() | Date | Mon, 23 Apr 2012 13:58:29 +0900 |
| |
The @arg paremeter should not be freed inside of process_XXX(), because it'd be freed from the caller of process_arg(). We can free it only after it was reused for local usage.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com> --- parse-events.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/parse-events.c b/parse-events.c index 81e6581..0cd79c5 100644 --- a/parse-events.c +++ b/parse-events.c @@ -2330,17 +2330,18 @@ process_dynamic_array(struct event_format *event, struct print_arg *arg, char ** arg = alloc_arg(); type = process_arg(event, arg, &token); if (type == EVENT_ERROR) - goto out_free; + goto out_free_arg; if (!test_type_token(type, token, EVENT_OP, "]")) - goto out_free; + goto out_free_arg; free_token(token); type = read_token_item(tok); return type; + out_free_arg: + free_arg(arg); out_free: - free(arg); free_token(token); *tok = NULL; return EVENT_ERROR; -- 1.7.10
| |