mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 09:21:26 +03:00
mount: use chase_symlinks()
This commit is contained in:
parent
f4938c2ea5
commit
5bc9f949a4
@ -334,19 +334,15 @@ static int parse_argv(int argc, char *argv[]) {
|
|||||||
return log_oom();
|
return log_oom();
|
||||||
|
|
||||||
} else if (arg_transport == BUS_TRANSPORT_LOCAL) {
|
} else if (arg_transport == BUS_TRANSPORT_LOCAL) {
|
||||||
_cleanup_free_ char *u = NULL, *p = NULL;
|
_cleanup_free_ char *u = NULL;
|
||||||
|
|
||||||
u = fstab_node_to_udev_node(argv[optind]);
|
u = fstab_node_to_udev_node(argv[optind]);
|
||||||
if (!u)
|
if (!u)
|
||||||
return log_oom();
|
return log_oom();
|
||||||
|
|
||||||
r = path_make_absolute_cwd(u, &p);
|
r = chase_symlinks(u, NULL, 0, &arg_mount_what);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_error_errno(r, "Failed to make path %s absolute: %m", u);
|
return log_error_errno(r, "Failed to make path %s absolute: %m", u);
|
||||||
|
|
||||||
arg_mount_what = canonicalize_file_name(p);
|
|
||||||
if (!arg_mount_what)
|
|
||||||
return log_error_errno(errno, "Failed to canonicalize path %s: %m", p);
|
|
||||||
} else {
|
} else {
|
||||||
arg_mount_what = strdup(argv[optind]);
|
arg_mount_what = strdup(argv[optind]);
|
||||||
if (!arg_mount_what)
|
if (!arg_mount_what)
|
||||||
@ -989,26 +985,19 @@ static int action_umount(
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = optind; i < argc; i++) {
|
for (i = optind; i < argc; i++) {
|
||||||
_cleanup_free_ char *u = NULL, *a = NULL, *p = NULL;
|
_cleanup_free_ char *u = NULL, *p = NULL;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
|
||||||
u = fstab_node_to_udev_node(argv[i]);
|
u = fstab_node_to_udev_node(argv[i]);
|
||||||
if (!u)
|
if (!u)
|
||||||
return log_oom();
|
return log_oom();
|
||||||
|
|
||||||
r = path_make_absolute_cwd(u, &a);
|
r = chase_symlinks(u, NULL, 0, &p);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
r2 = log_error_errno(r, "Failed to make path %s absolute: %m", argv[i]);
|
r2 = log_error_errno(r, "Failed to make path %s absolute: %m", argv[i]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = canonicalize_file_name(a);
|
|
||||||
|
|
||||||
if (!p) {
|
|
||||||
r2 = log_error_errno(errno, "Failed to canonicalize path %s: %m", argv[i]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stat(p, &st) < 0)
|
if (stat(p, &st) < 0)
|
||||||
return log_error_errno(errno, "Can't stat %s (from %s): %m", p, argv[i]);
|
return log_error_errno(errno, "Can't stat %s (from %s): %m", p, argv[i]);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user