Преглед на файлове

perf tools: Catch a few uncheck calloc/malloc's

There were a few stray calloc()'s and malloc()'s which were not having
their return values checked for success.

As the calling code either already coped with failure or didn't actually
care we just return -ENOMEM at that point.

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Chris Samuel <chris@csamuel.org>
LKML-Reference: <4CDDF95A.1050400@csamuel.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Chris Samuel преди 14 години
родител
ревизия
ce47dc56a2
променени са 5 файла, в които са добавени 15 реда и са изтрити 0 реда
  1. 3 0
      tools/perf/builtin-kmem.c
  2. 3 0
      tools/perf/builtin-lock.c
  3. 3 0
      tools/perf/builtin-sched.c
  4. 3 0
      tools/perf/builtin-timechart.c
  5. 3 0
      tools/perf/util/header.c

+ 3 - 0
tools/perf/builtin-kmem.c

@@ -736,6 +736,9 @@ static int __cmd_record(int argc, const char **argv)
 	rec_argc = ARRAY_SIZE(record_args) + argc - 1;
 	rec_argc = ARRAY_SIZE(record_args) + argc - 1;
 	rec_argv = calloc(rec_argc + 1, sizeof(char *));
 	rec_argv = calloc(rec_argc + 1, sizeof(char *));
 
 
+	if (rec_argv == NULL)
+		return -ENOMEM;
+
 	for (i = 0; i < ARRAY_SIZE(record_args); i++)
 	for (i = 0; i < ARRAY_SIZE(record_args); i++)
 		rec_argv[i] = strdup(record_args[i]);
 		rec_argv[i] = strdup(record_args[i]);
 
 

+ 3 - 0
tools/perf/builtin-lock.c

@@ -943,6 +943,9 @@ static int __cmd_record(int argc, const char **argv)
 	rec_argc = ARRAY_SIZE(record_args) + argc - 1;
 	rec_argc = ARRAY_SIZE(record_args) + argc - 1;
 	rec_argv = calloc(rec_argc + 1, sizeof(char *));
 	rec_argv = calloc(rec_argc + 1, sizeof(char *));
 
 
+	if (rec_argv == NULL)
+		return -ENOMEM;
+
 	for (i = 0; i < ARRAY_SIZE(record_args); i++)
 	for (i = 0; i < ARRAY_SIZE(record_args); i++)
 		rec_argv[i] = strdup(record_args[i]);
 		rec_argv[i] = strdup(record_args[i]);
 
 

+ 3 - 0
tools/perf/builtin-sched.c

@@ -1860,6 +1860,9 @@ static int __cmd_record(int argc, const char **argv)
 	rec_argc = ARRAY_SIZE(record_args) + argc - 1;
 	rec_argc = ARRAY_SIZE(record_args) + argc - 1;
 	rec_argv = calloc(rec_argc + 1, sizeof(char *));
 	rec_argv = calloc(rec_argc + 1, sizeof(char *));
 
 
+	if (rec_argv)
+		return -ENOMEM;
+
 	for (i = 0; i < ARRAY_SIZE(record_args); i++)
 	for (i = 0; i < ARRAY_SIZE(record_args); i++)
 		rec_argv[i] = strdup(record_args[i]);
 		rec_argv[i] = strdup(record_args[i]);
 
 

+ 3 - 0
tools/perf/builtin-timechart.c

@@ -989,6 +989,9 @@ static int __cmd_record(int argc, const char **argv)
 	rec_argc = ARRAY_SIZE(record_args) + argc - 1;
 	rec_argc = ARRAY_SIZE(record_args) + argc - 1;
 	rec_argv = calloc(rec_argc + 1, sizeof(char *));
 	rec_argv = calloc(rec_argc + 1, sizeof(char *));
 
 
+	if (rec_argv == NULL)
+		return -ENOMEM;
+
 	for (i = 0; i < ARRAY_SIZE(record_args); i++)
 	for (i = 0; i < ARRAY_SIZE(record_args); i++)
 		rec_argv[i] = strdup(record_args[i]);
 		rec_argv[i] = strdup(record_args[i]);
 
 

+ 3 - 0
tools/perf/util/header.c

@@ -1005,6 +1005,9 @@ int event__synthesize_attr(struct perf_event_attr *attr, u16 ids, u64 *id,
 
 
 	ev = malloc(size);
 	ev = malloc(size);
 
 
+	if (ev == NULL)
+		return -ENOMEM;
+
 	ev->attr.attr = *attr;
 	ev->attr.attr = *attr;
 	memcpy(ev->attr.id, id, ids * sizeof(u64));
 	memcpy(ev->attr.id, id, ids * sizeof(u64));