diff options
Diffstat (limited to 'tools/perf/util/trace-event-info.c')
| -rw-r--r-- | tools/perf/util/trace-event-info.c | 13 | 
1 files changed, 4 insertions, 9 deletions
diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index 7e6fcfe8b438..eb72716017ac 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c @@ -40,6 +40,7 @@  #include "trace-event.h"  #include <api/fs/debugfs.h>  #include "evsel.h" +#include "debug.h"  #define VERSION "0.5" @@ -191,12 +192,10 @@ static int copy_event_system(const char *sys, struct tracepoint_path *tps)  		    strcmp(dent->d_name, "..") == 0 ||  		    !name_in_tp_list(dent->d_name, tps))  			continue; -		format = malloc(strlen(sys) + strlen(dent->d_name) + 10); -		if (!format) { +		if (asprintf(&format, "%s/%s/format", sys, dent->d_name) < 0) {  			err = -ENOMEM;  			goto out;  		} -		sprintf(format, "%s/%s/format", sys, dent->d_name);  		ret = stat(format, &st);  		free(format);  		if (ret < 0) @@ -217,12 +216,10 @@ static int copy_event_system(const char *sys, struct tracepoint_path *tps)  		    strcmp(dent->d_name, "..") == 0 ||  		    !name_in_tp_list(dent->d_name, tps))  			continue; -		format = malloc(strlen(sys) + strlen(dent->d_name) + 10); -		if (!format) { +		if (asprintf(&format, "%s/%s/format", sys, dent->d_name) < 0) {  			err = -ENOMEM;  			goto out;  		} -		sprintf(format, "%s/%s/format", sys, dent->d_name);  		ret = stat(format, &st);  		if (ret >= 0) { @@ -317,12 +314,10 @@ static int record_event_files(struct tracepoint_path *tps)  		    strcmp(dent->d_name, "ftrace") == 0 ||  		    !system_in_tp_list(dent->d_name, tps))  			continue; -		sys = malloc(strlen(path) + strlen(dent->d_name) + 2); -		if (!sys) { +		if (asprintf(&sys, "%s/%s", path, dent->d_name) < 0) {  			err = -ENOMEM;  			goto out;  		} -		sprintf(sys, "%s/%s", path, dent->d_name);  		ret = stat(sys, &st);  		if (ret >= 0) {  			ssize_t size = strlen(dent->d_name) + 1;  |