From 0b488c7f5cac12408a3808daa42eec4efa63e955 Mon Sep 17 00:00:00 2001 From: Craig Small Date: Fri, 6 Apr 2018 23:00:29 +1000 Subject: [PATCH] pgrep: Don't segfault with no match If pgrep is run with a non-program name match and there are no matches, it segfaults. The testsuite thinks zero bytes sent, and zero bytes sent because the program crashed is the same :/ References: commit 1aacf4af7f199d77fc9386e249eee654f59880db https://bugs.debian.org/894917 Signed-off-by: Craig Small --- NEWS | 4 ++++ pgrep.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 41032e37..681d9d04 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,7 @@ +procps-ng-3.3.14 +---------------- + * pgrep: Don't segfault on non match Debian #894917 + procps-ng-3.3.13 ---------------- * library: Increment to 7:0:1 diff --git a/pgrep.c b/pgrep.c index ed77a649..46832a61 100644 --- a/pgrep.c +++ b/pgrep.c @@ -652,7 +652,7 @@ static struct el * select_procs (int *num) closeproc (ptp); *num = matches; - if ((!matches) && (!opt_full) && (strlen(opt_pattern) > 15)) + if ((!matches) && (!opt_full) && opt_pattern && (strlen(opt_pattern) > 15)) xwarnx(_("pattern that searches for process name longer than 15 characters will result in zero matches\n" "Try `%s -f' option to match against the complete command line."), program_invocation_short_name);