The field should be freed on error paths.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1348037924-17568-4-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 
                value = arg_eval(arg);
                if (value == NULL)
-                       goto out_free;
+                       goto out_free_field;
                field->value = strdup(value);
                if (field->value == NULL)
-                       goto out_free;
+                       goto out_free_field;
 
                free_arg(arg);
                arg = alloc_arg();
                free_token(token);
                type = process_arg(event, arg, &token);
                if (test_type_token(type, token, EVENT_OP, "}"))
-                       goto out_free;
+                       goto out_free_field;
 
                value = arg_eval(arg);
                if (value == NULL)
-                       goto out_free;
+                       goto out_free_field;
                field->str = strdup(value);
                if (field->str == NULL)
-                       goto out_free;
+                       goto out_free_field;
                free_arg(arg);
                arg = NULL;
 
        *tok = token;
        return type;
 
+out_free_field:
+       free_flag_sym(field);
 out_free:
        free_arg(arg);
        free_token(token);