Openembedded Core Discussions
 help / color / mirror / Atom feed
* [review][OE-core][PATCH] procps: fixed large pid issue with top
@ 2025-12-12 13:35 amaury.couderc
  2025-12-12 16:23 ` Mathieu Dubois-Briand
  0 siblings, 1 reply; 2+ messages in thread
From: amaury.couderc @ 2025-12-12 13:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: david.nystrom, Amaury Couderc

From: Amaury Couderc <amaury.couderc@est.tech>

procps: fixed large pid issue with top

top -b -n1 -H -p 92233720368547758071
  signal 11 (SEGV) was caught by top, please

This patch should be backported to the scarthgap branch once it is merged.

Signed-off-by: Amaury Couderc <amaury.couderc@est.tech>
---
 .../procps/procps/top_large_pid_fix.patch     | 52 +++++++++++++++++++
 meta/recipes-extended/procps/procps_4.0.4.bb  |  1 +
 2 files changed, 53 insertions(+)
 create mode 100644 meta/recipes-extended/procps/procps/top_large_pid_fix.patch

diff --git a/meta/recipes-extended/procps/procps/top_large_pid_fix.patch b/meta/recipes-extended/procps/procps/top_large_pid_fix.patch
new file mode 100644
index 0000000000..d7e3141e06
--- /dev/null
+++ b/meta/recipes-extended/procps/procps/top_large_pid_fix.patch
@@ -0,0 +1,52 @@
+From f21fc624d960d12afa399af7333d4f9193fb2ffb Mon Sep 17 00:00:00 2001
+From: Jim Warner <james.warner@comcast.net>
+Date: Tue, 16 Sep 2025 12:00:00 -0500
+Subject: [PATCH] library: avoid possible segmentation fault, <pids> api
+Upstream-Status: Backport
+[https://gitlab.com/procps-ng/procps/-/commit/5461b50b1a85c5e556c4cd2739ca8ffdbc69399a]
+
+In the issue referenced below, that SEGV was caused by
+passing a '-1' pid to the procps_pids_select function.
+That value, in turn, is caused by providing a LONG_MAX
+or greater number for what was assigned to an integer.
+
+So, this commit will help ensure we avoid a match when
+we should fail plus skip some unproductive libc calls.
+
+[ the same problem occurs in that old 3.3.17 library ]
+
+Reference(s):
+https://gitlab.com/procps-ng/procps/-/issues/394
+
+Signed-off-by: Jim Warner <james.warner@comcast.net>
+Signed-off-by: Amaury Couderc <amaury.couderc@est.tech>
+
+---
+ library/readproc.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/library/readproc.c b/library/readproc.c
+index 2dfe4c9e..d0e039bf 100644
+--- a/library/readproc.c
++++ b/library/readproc.c
+@@ -1434,7 +1434,7 @@ static int listed_nextpid (PROCTAB *PT, proc_t *p) {
+   pid_t pid = *(PT->pids)++;
+   char *path = PT->path;
+ 
+-  if (pid) {
++  if (pid > 0) {
+     snprintf(path, PROCPATHLEN, "/proc/%d", pid);
+     p->tid = p->tgid = pid;        // this tgid may be a huge fib |
+ 
+@@ -1546,7 +1546,7 @@ PROCTAB *openproc(unsigned flags, ...) {
+         did_stat = 1;
+     }
+     PT->taskdir = NULL;
+-    PT->taskdir_user = -1;
++    PT->taskdir_user = -2;
+     PT->taskfinder = simple_nexttid;
+     PT->taskreader = simple_readtask;
+ 
+-- 
+2.43.0
+
diff --git a/meta/recipes-extended/procps/procps_4.0.4.bb b/meta/recipes-extended/procps/procps_4.0.4.bb
index ec8c4b0261..3c15f28a5b 100644
--- a/meta/recipes-extended/procps/procps_4.0.4.bb
+++ b/meta/recipes-extended/procps/procps_4.0.4.bb
@@ -15,6 +15,7 @@ inherit autotools gettext pkgconfig update-alternatives
 SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https;branch=master \
            file://sysctl.conf \
            file://pidfd.patch \
+           file://top_large_pid_fix.patch \
            "
 SRCREV = "4ddcef2fd843170c8e2d59a83042978f41037a2b"
 
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-12-12 16:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-12 13:35 [review][OE-core][PATCH] procps: fixed large pid issue with top amaury.couderc
2025-12-12 16:23 ` Mathieu Dubois-Briand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox