process-util: handle double NUL as the end of command line

Fixes #21186.
This commit is contained in:
Yu Watanabe
2021-12-06 23:42:25 +09:00
parent 95a511b704
commit aa9de5b1c0
2 changed files with 10 additions and 4 deletions
+6
View File
@@ -214,11 +214,17 @@ int get_process_cmdline(pid_t pid, size_t max_columns, ProcessCmdlineFlags flags
assert(!(flags & PROCESS_CMDLINE_USE_LOCALE));
_cleanup_strv_free_ char **args = NULL;
char **p;
args = strv_parse_nulstr(t, k);
if (!args)
return -ENOMEM;
/* Drop trailing empty strings. See issue #21186. */
STRV_FOREACH_BACKWARDS(p, args)
if (isempty(*p))
*p = mfree(*p);
ans = quote_command_line(args, shflags);
if (!ans)
return -ENOMEM;