From: Masatake YAMATO Date: Fri, 7 Jun 2024 19:54:03 +0000 (+0900) Subject: lsns: ignore ESRCH errors reported when accessing files under /proc X-Git-Tag: v2.42-start~300 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed61f54dcd61130658335a2de97e06453af3fdde;p=thirdparty%2Futil-linux.git lsns: ignore ESRCH errors reported when accessing files under /proc 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 --- diff --git a/sys-utils/lsns.c b/sys-utils/lsns.c index 830aeee9f..b2913152b 100644 --- a/sys-utils/lsns.c +++ b/sys-utils/lsns.c @@ -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; }