Commit 5a6fd27a authored by Namhyung Kim's avatar Namhyung Kim Committed by Arnaldo Carvalho de Melo

perf tools: Get rid of malloc_or_die() in trace-event-info.c

Check return value of malloc and fail if NULL.
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1363850332-25297-3-git-send-email-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 454f8c7d
...@@ -47,16 +47,6 @@ static const char *output_file = "trace.info"; ...@@ -47,16 +47,6 @@ static const char *output_file = "trace.info";
static int output_fd; static int output_fd;
static void *malloc_or_die(unsigned int size)
{
void *data;
data = malloc(size);
if (!data)
die("malloc");
return data;
}
static const char *find_debugfs(void) static const char *find_debugfs(void)
{ {
const char *path = perf_debugfs_mount(NULL); const char *path = perf_debugfs_mount(NULL);
...@@ -209,7 +199,7 @@ static bool name_in_tp_list(char *sys, struct tracepoint_path *tps) ...@@ -209,7 +199,7 @@ static bool name_in_tp_list(char *sys, struct tracepoint_path *tps)
return false; return false;
} }
static void copy_event_system(const char *sys, struct tracepoint_path *tps) static int copy_event_system(const char *sys, struct tracepoint_path *tps)
{ {
struct dirent *dent; struct dirent *dent;
struct stat st; struct stat st;
...@@ -217,6 +207,7 @@ static void copy_event_system(const char *sys, struct tracepoint_path *tps) ...@@ -217,6 +207,7 @@ static void copy_event_system(const char *sys, struct tracepoint_path *tps)
DIR *dir; DIR *dir;
int count = 0; int count = 0;
int ret; int ret;
int err;
dir = opendir(sys); dir = opendir(sys);
if (!dir) if (!dir)
...@@ -228,7 +219,11 @@ static void copy_event_system(const char *sys, struct tracepoint_path *tps) ...@@ -228,7 +219,11 @@ static void copy_event_system(const char *sys, struct tracepoint_path *tps)
strcmp(dent->d_name, "..") == 0 || strcmp(dent->d_name, "..") == 0 ||
!name_in_tp_list(dent->d_name, tps)) !name_in_tp_list(dent->d_name, tps))
continue; continue;
format = malloc_or_die(strlen(sys) + strlen(dent->d_name) + 10); format = malloc(strlen(sys) + strlen(dent->d_name) + 10);
if (!format) {
err = -ENOMEM;
goto out;
}
sprintf(format, "%s/%s/format", sys, dent->d_name); sprintf(format, "%s/%s/format", sys, dent->d_name);
ret = stat(format, &st); ret = stat(format, &st);
free(format); free(format);
...@@ -246,16 +241,22 @@ static void copy_event_system(const char *sys, struct tracepoint_path *tps) ...@@ -246,16 +241,22 @@ static void copy_event_system(const char *sys, struct tracepoint_path *tps)
strcmp(dent->d_name, "..") == 0 || strcmp(dent->d_name, "..") == 0 ||
!name_in_tp_list(dent->d_name, tps)) !name_in_tp_list(dent->d_name, tps))
continue; continue;
format = malloc_or_die(strlen(sys) + strlen(dent->d_name) + 10); format = malloc(strlen(sys) + strlen(dent->d_name) + 10);
if (!format) {
err = -ENOMEM;
goto out;
}
sprintf(format, "%s/%s/format", sys, dent->d_name); sprintf(format, "%s/%s/format", sys, dent->d_name);
ret = stat(format, &st); ret = stat(format, &st);
if (ret >= 0) if (ret >= 0)
record_file(format, 8); record_file(format, 8);
free(format); free(format);
} }
err = 0;
out:
closedir(dir); closedir(dir);
return err;
} }
static void read_ftrace_files(struct tracepoint_path *tps) static void read_ftrace_files(struct tracepoint_path *tps)
...@@ -282,7 +283,7 @@ static bool system_in_tp_list(char *sys, struct tracepoint_path *tps) ...@@ -282,7 +283,7 @@ static bool system_in_tp_list(char *sys, struct tracepoint_path *tps)
return false; return false;
} }
static void read_event_files(struct tracepoint_path *tps) static int read_event_files(struct tracepoint_path *tps)
{ {
struct dirent *dent; struct dirent *dent;
struct stat st; struct stat st;
...@@ -291,6 +292,7 @@ static void read_event_files(struct tracepoint_path *tps) ...@@ -291,6 +292,7 @@ static void read_event_files(struct tracepoint_path *tps)
DIR *dir; DIR *dir;
int count = 0; int count = 0;
int ret; int ret;
int err;
path = get_tracing_file("events"); path = get_tracing_file("events");
if (!path) if (!path)
...@@ -320,7 +322,11 @@ static void read_event_files(struct tracepoint_path *tps) ...@@ -320,7 +322,11 @@ static void read_event_files(struct tracepoint_path *tps)
strcmp(dent->d_name, "ftrace") == 0 || strcmp(dent->d_name, "ftrace") == 0 ||
!system_in_tp_list(dent->d_name, tps)) !system_in_tp_list(dent->d_name, tps))
continue; continue;
sys = malloc_or_die(strlen(path) + strlen(dent->d_name) + 2); sys = malloc(strlen(path) + strlen(dent->d_name) + 2);
if (!sys) {
err = -ENOMEM;
goto out;
}
sprintf(sys, "%s/%s", path, dent->d_name); sprintf(sys, "%s/%s", path, dent->d_name);
ret = stat(sys, &st); ret = stat(sys, &st);
if (ret >= 0) { if (ret >= 0) {
...@@ -329,9 +335,12 @@ static void read_event_files(struct tracepoint_path *tps) ...@@ -329,9 +335,12 @@ static void read_event_files(struct tracepoint_path *tps)
} }
free(sys); free(sys);
} }
err = 0;
out:
closedir(dir); closedir(dir);
put_tracing_file(path); put_tracing_file(path);
return err;
} }
static void read_proc_kallsyms(void) static void read_proc_kallsyms(void)
...@@ -463,7 +472,10 @@ struct tracing_data *tracing_data_get(struct list_head *pattrs, ...@@ -463,7 +472,10 @@ struct tracing_data *tracing_data_get(struct list_head *pattrs,
if (!tps) if (!tps)
return NULL; return NULL;
tdata = malloc_or_die(sizeof(*tdata)); tdata = malloc(sizeof(*tdata));
if (!tdata)
return NULL;
tdata->temp = temp; tdata->temp = temp;
tdata->size = 0; tdata->size = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment