]> git.hungrycats.org Git - linux/commitdiff
perf scripting: Avoid leaking the scripting_context variable
authorArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 25 Oct 2016 20:20:47 +0000 (17:20 -0300)
committerJiri Slaby <jslaby@suse.cz>
Thu, 26 Jan 2017 16:40:58 +0000 (17:40 +0100)
commit cf346d5bd4b9d61656df2f72565c9b354ef3ca0d upstream.

Both register_perl_scripting() and register_python_scripting() allocate
this variable, fix it by checking if it already was.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Tom Zanussi <tzanussi@gmail.com>
Cc: Wang Nan <wangnan0@huawei.com>
Fixes: 7e4b21b84c43 ("perf/scripts: Add Python scripting engine")
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
tools/perf/util/trace-event-scripting.c

index 95199e4eea978c3961a86e5e2439e61b6a3ef8a1..f928bfc4852fb2ead8043111d8576f9443b7bad4 100644 (file)
@@ -91,7 +91,8 @@ static void register_python_scripting(struct scripting_ops *scripting_ops)
        if (err)
                die("error registering py script extension");
 
-       scripting_context = malloc(sizeof(struct scripting_context));
+       if (scripting_context == NULL)
+               scripting_context = malloc(sizeof(*scripting_context));
 }
 
 #ifdef NO_LIBPYTHON
@@ -154,7 +155,8 @@ static void register_perl_scripting(struct scripting_ops *scripting_ops)
        if (err)
                die("error registering pl script extension");
 
-       scripting_context = malloc(sizeof(struct scripting_context));
+       if (scripting_context == NULL)
+               scripting_context = malloc(sizeof(*scripting_context));
 }
 
 #ifdef NO_LIBPERL