summaryrefslogtreecommitdiff
path: root/src/basic/process-util.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2023-03-23 11:59:44 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2023-03-24 15:21:59 +0900
commit4669be626d3e0098323741e70cc3a3cdf5ff22ed (patch)
tree3f77a6a78a387be9685ef614c357b2fb69bd3287 /src/basic/process-util.c
parent55479c208d753929445da6121cfa9beab3ae4b15 (diff)
downloadsystemd-4669be626d3e0098323741e70cc3a3cdf5ff22ed.tar.gz
process-util: drop trailing NUls before parsing the nulstr
No functional changes, just refactoring.
Diffstat (limited to 'src/basic/process-util.c')
-rw-r--r--src/basic/process-util.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/basic/process-util.c b/src/basic/process-util.c
index 2fc2f92450..cf2dca1dc4 100644
--- a/src/basic/process-util.c
+++ b/src/basic/process-util.c
@@ -222,18 +222,12 @@ int get_process_cmdline(pid_t pid, size_t max_columns, ProcessCmdlineFlags flags
_cleanup_strv_free_ char **args = NULL;
- args = strv_parse_nulstr(t, k);
+ /* Drop trailing NULs, otherwise strv_parse_nulstr() adds additional empty strings at the end.
+ * See also issue #21186. */
+ args = strv_parse_nulstr_full(t, k, /* drop_trailing_nuls = */ true);
if (!args)
return -ENOMEM;
- /* Drop trailing empty strings. See issue #21186. */
- STRV_FOREACH_BACKWARDS(p, args) {
- if (!isempty(*p))
- break;
-
- *p = mfree(*p);
- }
-
ans = quote_command_line(args, shflags);
if (!ans)
return -ENOMEM;