/* ppid */
sprintf(filename, "%d/stat", pid);
fd = openat(procfd, filename, O_RDONLY);
+ if (fd == -1)
+ continue;
st = fdopen(fd, "r");
- if (!st)
+ if (!st) {
+ close(fd);
continue;
+ }
if (!fscanf(st, "%*s %*s %*s %i", &p)) {
continue;
}
if (!ps->smaps) {
sprintf(filename, "%d/smaps", pid);
fd = openat(procfd, filename, O_RDONLY);
+ if (fd == -1)
+ continue;
ps->smaps = fdopen(fd, "r");
- if (!ps->smaps)
+ if (!ps->smaps) {
+ close(fd);
continue;
+ }
setvbuf(ps->smaps, smaps_buf, _IOFBF, sizeof(smaps_buf));
}
else {