shared/exec-util: fix logging of the args of an executed program

The debug logs has lots of "About to execute /some/path (null)". This
occurs when the args array is empty. Instead, only print "(null)" if
we failed with oom.

Having strv_skip() return NULL makes this pleasant to write without repeating
strv_isempty() a few times.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2025-03-27 12:04:43 +01:00
parent d193cb77c7
commit 6bb9caa256
+6 -4
View File
@@ -146,11 +146,13 @@ static int do_execute(
}
if (DEBUG_LOGGING) {
_cleanup_free_ char *args = NULL;
if (argv)
args = quote_command_line(strv_skip(argv, 1), SHELL_ESCAPE_EMPTY);
_cleanup_free_ char *s = NULL;
log_debug("About to execute %s%s%s", t, argv ? " " : "", argv ? strnull(args) : "");
char **args = strv_skip(argv, 1);
if (args)
s = quote_command_line(args, SHELL_ESCAPE_EMPTY);
log_debug("About to execute %s%s%s", t, args ? " " : "", args ? strnull(s) : "");
}
if (FLAGS_SET(flags, EXEC_DIR_WARN_WORLD_WRITABLE)) {