mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
mount-tool: honor arg_canonicalize for ACTION_UMOUNT path_is_absolute() check too (#37398)
Split out from #36337
This commit is contained in:
@@ -2416,7 +2416,6 @@ char* mount_get_what_escaped(const Mount *m) {
|
||||
}
|
||||
|
||||
char* mount_get_options_escaped(const Mount *m) {
|
||||
_cleanup_free_ char *escaped = NULL;
|
||||
const char *s = NULL;
|
||||
|
||||
assert(m);
|
||||
@@ -2425,14 +2424,10 @@ char* mount_get_options_escaped(const Mount *m) {
|
||||
s = m->parameters_proc_self_mountinfo.options;
|
||||
else if (m->from_fragment && m->parameters_fragment.options)
|
||||
s = m->parameters_fragment.options;
|
||||
if (!s)
|
||||
return strdup("");
|
||||
|
||||
if (s) {
|
||||
escaped = utf8_escape_invalid(s);
|
||||
if (!escaped)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return escaped ? TAKE_PTR(escaped) : strdup("");
|
||||
return utf8_escape_invalid(s);
|
||||
}
|
||||
|
||||
const char* mount_get_fstype(const Mount *m) {
|
||||
|
||||
@@ -418,11 +418,11 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"At least one argument required.");
|
||||
|
||||
if (arg_transport != BUS_TRANSPORT_LOCAL)
|
||||
if (arg_transport != BUS_TRANSPORT_LOCAL || !arg_canonicalize)
|
||||
for (int i = optind; i < argc; i++)
|
||||
if (!path_is_absolute(argv[i]))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"Path must be absolute when operating remotely: %s",
|
||||
"Path must be absolute when operating remotely or when canonicalization is turned off: %s",
|
||||
argv[i]);
|
||||
} else {
|
||||
if (optind >= argc)
|
||||
|
||||
Reference in New Issue
Block a user