start_stop_daemon: do not stop /proc scan prematurely
function old new delta do_procinit 185 196 +11
This commit is contained in:
parent
f3745ea489
commit
daeddee442
@ -145,11 +145,18 @@ static void do_procinit(void)
|
||||
procdir = xopendir("/proc");
|
||||
|
||||
pid = 0;
|
||||
while ((entry = readdir(procdir)) != NULL) {
|
||||
pid = bb_strtou(entry->d_name, NULL, 10);
|
||||
if (errno)
|
||||
continue;
|
||||
check(pid);
|
||||
while(1) {
|
||||
errno = 0; /* clear any previous error */
|
||||
entry = readdir(procdir);
|
||||
// TODO: check for exact errno(s) which mean that we got stale entry
|
||||
if (errno) /* Stale entry, process has died after opendir */
|
||||
continue;
|
||||
if (!entry) /* EOF, no more entries */
|
||||
break;
|
||||
pid = bb_strtou(entry->d_name, NULL, 10);
|
||||
if (errno) /* NaN */
|
||||
continue;
|
||||
check(pid);
|
||||
}
|
||||
closedir(procdir);
|
||||
if (!pid)
|
||||
|
Loading…
Reference in New Issue
Block a user