diff --git a/NEWS b/NEWS index 514f8efc..9dfd42f4 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,7 @@ procps-ng NEXT * pgrep: Add older than selection merge #79 * pidof: show worker threads Redhat #1803640 * ps.1: Mention stime alias issue #164 + * ps: check also match on truncated 16 char comm names * sysctl: Match systemd directory order * sysctl: Document directory order Debian #951550 * top: ensure config file backward compatibility Debian #951335 diff --git a/ps/select.c b/ps/select.c index f58ca253..e26f2f19 100644 --- a/ps/select.c +++ b/ps/select.c @@ -116,11 +116,15 @@ static int proc_was_listed(proc_t *buf){ break; case SEL_TTY : return_if_match(tty,tty); break; case SEL_SESS: return_if_match(session,pid); - break; case SEL_COMM: i=sn->n; while(i--) - if(!strncmp( buf->cmd, (*(sn->u+i)).cmd, 63 )) return 1; - - - + break; + case SEL_COMM: + i=sn->n; + while(i--) { + /* special case, comm is 16 characters but match is longer */ + if (strlen(buf->cmd) == 15 && strlen((*(sn->u+i)).cmd) >= 15) + if(!strncmp( buf->cmd, (*(sn->u+i)).cmd, 15 )) return 1; + if(!strncmp( buf->cmd, (*(sn->u+i)).cmd, 63 )) return 1; + } #undef return_if_match }