Blame SOURCES/procps-ng-3.3.15-pidof-show-worker-threads.patch

5e9bbf
From 7dcb6b8eb6c69584d0d56797935f836bc06642f5 Mon Sep 17 00:00:00 2001
5e9bbf
From: Jan Rybar <jrybar@redhat.com>
5e9bbf
Date: Tue, 7 Apr 2020 13:41:48 +0200
5e9bbf
Subject: [PATCH] pidof: show worker threads
5e9bbf
5e9bbf
Reimplementation of pidof for procps toolset contains sort of deactivated code and does not return results for processes without task.cmdline entry (usually kernel worker threads). Old pidof and pgrep do that in comparison. Despite all perks provided by using pgrep instead, pidof should show those workers again.
5e9bbf
---
5e9bbf
 pidof.c | 10 +++++++---
5e9bbf
 1 file changed, 7 insertions(+), 3 deletions(-)
5e9bbf
5e9bbf
diff --git a/pidof.c b/pidof.c
5e9bbf
index b0d08cc..90ecb13 100644
5e9bbf
--- a/pidof.c
5e9bbf
+++ b/pidof.c
5e9bbf
@@ -142,6 +142,7 @@ static void select_procs (void)
5e9bbf
 	static int size = 0;
5e9bbf
 	char *cmd_arg0, *cmd_arg0base;
5e9bbf
 	char *cmd_arg1, *cmd_arg1base;
5e9bbf
+	char *stat_cmd;
5e9bbf
 	char *program_base;
5e9bbf
 	char *root_link;
5e9bbf
 	char *exe_link;
5e9bbf
@@ -167,9 +168,10 @@ static void select_procs (void)
5e9bbf
 			}
5e9bbf
 		}
5e9bbf
 
5e9bbf
-		if (!is_omitted(task.XXXID) && task.cmdline && *task.cmdline) {
5e9bbf
+		if (!is_omitted(task.XXXID)) {
5e9bbf
 
5e9bbf
-			cmd_arg0 = *task.cmdline;
5e9bbf
+			cmd_arg0 = (task.cmdline && *task.cmdline) ? *task.cmdline : "\0";
5e9bbf
+			stat_cmd = task.cmd ? task.cmd : "\0";
5e9bbf
 
5e9bbf
 			/* processes starting with '-' are login shells */
5e9bbf
 			if (*cmd_arg0 == '-') {
5e9bbf
@@ -191,12 +193,14 @@ static void select_procs (void)
5e9bbf
 			    !strcmp(program_base, cmd_arg0) ||
5e9bbf
 			    !strcmp(program, cmd_arg0) ||
5e9bbf
 
5e9bbf
+			    !strcmp(program, stat_cmd) ||
5e9bbf
+
5e9bbf
 			    !strcmp(program, exe_link_base) ||
5e9bbf
 			    !strcmp(program, exe_link))
5e9bbf
 			{
5e9bbf
 				match = 1;
5e9bbf
 
5e9bbf
-			} else if (opt_scripts_too && *(task.cmdline+1)) {
5e9bbf
+			} else if (opt_scripts_too && task.cmdline && *(task.cmdline+1)) {
5e9bbf
 
5e9bbf
 				cmd_arg1 = *(task.cmdline+1);
5e9bbf
 
5e9bbf
-- 
5e9bbf
2.25.2
5e9bbf