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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Jan 2017 07:23:47 +0000 (08:23 +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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/perf/util/trace-event-scripting.c

index 9df61059a85d2188f9d0deb5dbf2e8f1f60aed4b..a2fd6e79d5a5c5bb8e35f587e3e695e4f611879d 100644 (file)
@@ -95,7 +95,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
@@ -159,7 +160,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