]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lsns: ignore ESRCH errors reported when accessing files under /proc
authorMasatake YAMATO <yamato@redhat.com>
Fri, 7 Jun 2024 19:54:03 +0000 (04:54 +0900)
committerMasatake YAMATO <yamato@redhat.com>
Fri, 7 Jun 2024 20:00:09 +0000 (05:00 +0900)
Fix #2799.

If a process is gone, system calls accessing files under /proc can
return ESRCH.

Suggested by Johannes Edmeier (@joshiste).
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
sys-utils/lsns.c

index 830aeee9fa5b455d0d71504db80b664b96bfdbb0..b2913152bc57cec2bf20ac2221f67af22b798fcc 100644 (file)
@@ -624,7 +624,7 @@ static int read_process(struct lsns *ls, struct path_cxt *pc)
 
                rc = get_ns_inos(pc, ns_names[i], &p->ns_ids[i],
                                 &p->ns_pids[i], &p->ns_oids[i]);
-               if (rc && rc != -EACCES && rc != -ENOENT) {
+               if (rc && rc != -EACCES && rc != -ENOENT && rc != ESRCH) {
                        DBG(PROC, ul_debug("failed in get_ns_inos (rc: %d)", rc));
                        goto done;
                }
@@ -686,7 +686,7 @@ static int read_processes(struct lsns *ls)
                }
 
                rc = read_process(ls, pc);
-               if (rc && rc != -EACCES && rc != -ENOENT) {
+               if (rc && rc != -EACCES && rc != -ENOENT && rc != ESRCH) {
                        DBG(PROC, ul_debug("failed in read_process() (pid: %d, rc: %d)", (int) pid, rc));
                        break;
                }