return str_realloc(buf);
}
-char* quote_command_line(char **argv) {
+char* quote_command_line(char **argv, ShellEscapeFlags flags) {
_cleanup_free_ char *result = NULL;
assert(argv);
STRV_FOREACH(a, argv) {
_cleanup_free_ char *t = NULL;
- t = shell_maybe_quote(*a, SHELL_ESCAPE_EMPTY);
+ t = shell_maybe_quote(*a, flags);
if (!t)
return NULL;
char* shell_escape(const char *s, const char *bad);
char* shell_maybe_quote(const char *s, ShellEscapeFlags flags);
-char* quote_command_line(char **argv);
+char* quote_command_line(char **argv, ShellEscapeFlags flags);
exec_context_tty_reset(context, params);
if (unit_shall_confirm_spawn(unit)) {
- const char *vc = params->confirm_spawn;
_cleanup_free_ char *cmdline = NULL;
- cmdline = quote_command_line(command->argv);
+ cmdline = quote_command_line(command->argv, SHELL_ESCAPE_EMPTY);
if (!cmdline) {
*exit_status = EXIT_MEMORY;
return log_oom();
}
- r = ask_for_confirmation(context, vc, unit, cmdline);
+ r = ask_for_confirmation(context, params->confirm_spawn, unit, cmdline);
if (r != CONFIRM_EXECUTE) {
if (r == CONFIRM_PRETEND_SUCCESS) {
*exit_status = EXIT_SUCCESS;
if (DEBUG_LOGGING) {
_cleanup_free_ char *line = NULL;
- line = quote_command_line(final_argv);
+ line = quote_command_line(final_argv, SHELL_ESCAPE_EMPTY);
if (!line) {
*exit_status = EXIT_MEMORY;
return log_oom();
if (r < 0)
return log_unit_error_errno(unit, r, "Failed to load environment files: %m");
- line = quote_command_line(command->argv);
+ line = quote_command_line(command->argv, SHELL_ESCAPE_EMPTY);
if (!line)
return log_oom();
prefix = strempty(prefix);
prefix2 = strjoina(prefix, "\t");
- cmd = quote_command_line(c->argv);
+ cmd = quote_command_line(c->argv, SHELL_ESCAPE_EMPTY);
fprintf(f,
"%sCommand Line: %s\n",
prefix, cmd ? cmd : strerror_safe(ENOMEM));
_cleanup_free_ char *line = NULL;
if (b->exec_argv)
- line = quote_command_line(b->exec_argv);
+ line = quote_command_line(b->exec_argv, SHELL_ESCAPE_EMPTY);
log_debug("sd-bus: starting bus%s%s with %s%s",
b->description ? " " : "", strempty(b->description),
static void test_quote_command_line_one(char **argv, const char *expected) {
_cleanup_free_ char *s;
- assert_se(s = quote_command_line(argv));
+ assert_se(s = quote_command_line(argv, SHELL_ESCAPE_EMPTY));
log_info("%s", s);
assert_se(streq(s, expected));
}