From: Julius Alexandre <61852278+medievalghoul@users.noreply.github.com> Date: Wed, 3 Apr 2024 21:44:51 +0000 (+0000) Subject: core/exec-invoke: replace basename() with path_extract_filename() (#32076) X-Git-Tag: v256-rc1~314 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f8bfea5433e04e2a2189c5f883cd76a0a1a64549;p=thirdparty%2Fsystemd.git core/exec-invoke: replace basename() with path_extract_filename() (#32076) --- diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c index dd8bcb18952..ee2c1247a9f 100644 --- a/src/core/exec-invoke.c +++ b/src/core/exec-invoke.c @@ -4302,13 +4302,20 @@ int exec_invoke( return log_exec_error_errno(context, params, r, "Failed to set up standard input: %m"); } - r = setup_output(context, params, STDOUT_FILENO, socket_fd, named_iofds, basename(command->path), uid, gid, &journal_stream_dev, &journal_stream_ino); + _cleanup_free_ char *fname = NULL; + r = path_extract_filename(command->path, &fname); + if (r < 0) { + *exit_status = EXIT_STDOUT; + return log_exec_error_errno(context, params, r, "Failed to extract filename from path %s: %m", command->path); + } + + r = setup_output(context, params, STDOUT_FILENO, socket_fd, named_iofds, fname, uid, gid, &journal_stream_dev, &journal_stream_ino); if (r < 0) { *exit_status = EXIT_STDOUT; return log_exec_error_errno(context, params, r, "Failed to set up standard output: %m"); } - r = setup_output(context, params, STDERR_FILENO, socket_fd, named_iofds, basename(command->path), uid, gid, &journal_stream_dev, &journal_stream_ino); + r = setup_output(context, params, STDERR_FILENO, socket_fd, named_iofds, fname, uid, gid, &journal_stream_dev, &journal_stream_ino); if (r < 0) { *exit_status = EXIT_STDERR; return log_exec_error_errno(context, params, r, "Failed to set up standard error output: %m");