|
@@ -94,7 +94,7 @@ struct thread_map *thread_map__new_by_uid(uid_t uid)
|
|
DIR *proc;
|
|
DIR *proc;
|
|
int max_threads = 32, items, i;
|
|
int max_threads = 32, items, i;
|
|
char path[256];
|
|
char path[256];
|
|
- struct dirent dirent, *next, **namelist = NULL;
|
|
|
|
|
|
+ struct dirent *dirent, **namelist = NULL;
|
|
struct thread_map *threads = thread_map__alloc(max_threads);
|
|
struct thread_map *threads = thread_map__alloc(max_threads);
|
|
|
|
|
|
if (threads == NULL)
|
|
if (threads == NULL)
|
|
@@ -107,16 +107,16 @@ struct thread_map *thread_map__new_by_uid(uid_t uid)
|
|
threads->nr = 0;
|
|
threads->nr = 0;
|
|
atomic_set(&threads->refcnt, 1);
|
|
atomic_set(&threads->refcnt, 1);
|
|
|
|
|
|
- while (!readdir_r(proc, &dirent, &next) && next) {
|
|
|
|
|
|
+ while ((dirent = readdir(proc)) != NULL) {
|
|
char *end;
|
|
char *end;
|
|
bool grow = false;
|
|
bool grow = false;
|
|
struct stat st;
|
|
struct stat st;
|
|
- pid_t pid = strtol(dirent.d_name, &end, 10);
|
|
|
|
|
|
+ pid_t pid = strtol(dirent->d_name, &end, 10);
|
|
|
|
|
|
if (*end) /* only interested in proper numerical dirents */
|
|
if (*end) /* only interested in proper numerical dirents */
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- snprintf(path, sizeof(path), "/proc/%s", dirent.d_name);
|
|
|
|
|
|
+ snprintf(path, sizeof(path), "/proc/%s", dirent->d_name);
|
|
|
|
|
|
if (stat(path, &st) != 0)
|
|
if (stat(path, &st) != 0)
|
|
continue;
|
|
continue;
|