diff options
-rw-r--r-- | tools/perf/builtin-record.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index ac5ddfff4456..9e1638cc19c8 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
@@ -206,6 +206,7 @@ static pid_t pid_synthesize_comm_event(pid_t pid, int full) | |||
206 | 206 | ||
207 | fp = fopen(filename, "r"); | 207 | fp = fopen(filename, "r"); |
208 | if (fp == NULL) { | 208 | if (fp == NULL) { |
209 | out_race: | ||
209 | /* | 210 | /* |
210 | * We raced with a task exiting - just return: | 211 | * We raced with a task exiting - just return: |
211 | */ | 212 | */ |
@@ -247,6 +248,9 @@ static pid_t pid_synthesize_comm_event(pid_t pid, int full) | |||
247 | snprintf(filename, sizeof(filename), "/proc/%d/task", pid); | 248 | snprintf(filename, sizeof(filename), "/proc/%d/task", pid); |
248 | 249 | ||
249 | tasks = opendir(filename); | 250 | tasks = opendir(filename); |
251 | if (tasks == NULL) | ||
252 | goto out_race; | ||
253 | |||
250 | while (!readdir_r(tasks, &dirent, &next) && next) { | 254 | while (!readdir_r(tasks, &dirent, &next) && next) { |
251 | char *end; | 255 | char *end; |
252 | pid = strtol(dirent.d_name, &end, 10); | 256 | pid = strtol(dirent.d_name, &end, 10); |