diff options
author | Davidlohr Bueso <davidlohr@hp.com> | 2013-09-08 22:19:15 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-10-09 10:23:39 -0400 |
commit | 0a98c7febf55325ebac4f28289a9433f4b66ed0e (patch) | |
tree | 7623723aa5632c99f0dc0e09718270a2e023cac5 /tools/perf/builtin-lock.c | |
parent | b33492ade49a223a666e582d0c63566609e7014b (diff) |
perf lock: Plug some memleaks
Address some trivial leaks.
Signed-off-by: Davidlohr Bueso <davidlohr@hp.com>
Cc: Aswin Chandramouleeswaran <aswin@hp.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1378693159-8747-4-git-send-email-davidlohr@hp.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-lock.c')
-rw-r--r-- | tools/perf/builtin-lock.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c index d3188629cbaf..77843478a27a 100644 --- a/tools/perf/builtin-lock.c +++ b/tools/perf/builtin-lock.c | |||
@@ -321,10 +321,12 @@ static struct lock_stat *lock_stat_findnew(void *addr, const char *name) | |||
321 | 321 | ||
322 | new->addr = addr; | 322 | new->addr = addr; |
323 | new->name = zalloc(sizeof(char) * strlen(name) + 1); | 323 | new->name = zalloc(sizeof(char) * strlen(name) + 1); |
324 | if (!new->name) | 324 | if (!new->name) { |
325 | free(new); | ||
325 | goto alloc_failed; | 326 | goto alloc_failed; |
326 | strcpy(new->name, name); | 327 | } |
327 | 328 | ||
329 | strcpy(new->name, name); | ||
328 | new->wait_time_min = ULLONG_MAX; | 330 | new->wait_time_min = ULLONG_MAX; |
329 | 331 | ||
330 | list_add(&new->hash_entry, entry); | 332 | list_add(&new->hash_entry, entry); |
@@ -875,7 +877,7 @@ static int __cmd_record(int argc, const char **argv) | |||
875 | const char *record_args[] = { | 877 | const char *record_args[] = { |
876 | "record", "-R", "-m", "1024", "-c", "1", | 878 | "record", "-R", "-m", "1024", "-c", "1", |
877 | }; | 879 | }; |
878 | unsigned int rec_argc, i, j; | 880 | unsigned int rec_argc, i, j, ret; |
879 | const char **rec_argv; | 881 | const char **rec_argv; |
880 | 882 | ||
881 | for (i = 0; i < ARRAY_SIZE(lock_tracepoints); i++) { | 883 | for (i = 0; i < ARRAY_SIZE(lock_tracepoints); i++) { |
@@ -892,7 +894,7 @@ static int __cmd_record(int argc, const char **argv) | |||
892 | rec_argc += 2 * ARRAY_SIZE(lock_tracepoints); | 894 | rec_argc += 2 * ARRAY_SIZE(lock_tracepoints); |
893 | 895 | ||
894 | rec_argv = calloc(rec_argc + 1, sizeof(char *)); | 896 | rec_argv = calloc(rec_argc + 1, sizeof(char *)); |
895 | if (rec_argv == NULL) | 897 | if (!rec_argv) |
896 | return -ENOMEM; | 898 | return -ENOMEM; |
897 | 899 | ||
898 | for (i = 0; i < ARRAY_SIZE(record_args); i++) | 900 | for (i = 0; i < ARRAY_SIZE(record_args); i++) |
@@ -908,7 +910,9 @@ static int __cmd_record(int argc, const char **argv) | |||
908 | 910 | ||
909 | BUG_ON(i != rec_argc); | 911 | BUG_ON(i != rec_argc); |
910 | 912 | ||
911 | return cmd_record(i, rec_argv, NULL); | 913 | ret = cmd_record(i, rec_argv, NULL); |
914 | free(rec_argv); | ||
915 | return ret; | ||
912 | } | 916 | } |
913 | 917 | ||
914 | int cmd_lock(int argc, const char **argv, const char *prefix __maybe_unused) | 918 | int cmd_lock(int argc, const char **argv, const char *prefix __maybe_unused) |