Fix two bugs reported by Ralph Jones.

This commit is contained in:
Matt Kraai 2001-05-04 14:49:58 +00:00
parent b0aca921be
commit e6bf66eada
2 changed files with 14 additions and 6 deletions

10
mount.c
View File

@ -381,9 +381,13 @@ extern int mount_main(int argc, char **argv)
if (!all && optind == argc) if (!all && optind == argc)
show_mounts(); show_mounts();
if (optind < argc) if (optind < argc) {
if (realpath(argv[optind], device) == NULL) /* Don't canonicalize NFS devices. */
if (strchr(argv[optind], ':') != NULL)
safe_strncpy(device, argv[optind], PATH_MAX);
else if (realpath(argv[optind], device) == NULL)
perror_msg_and_die("%s", device); perror_msg_and_die("%s", device);
}
if (optind + 1 < argc) if (optind + 1 < argc)
if (realpath(argv[optind + 1], directory) == NULL) if (realpath(argv[optind + 1], directory) == NULL)
@ -444,7 +448,7 @@ singlemount:
if (fstabmount == TRUE) if (fstabmount == TRUE)
endmntent(f); endmntent(f);
if (all == FALSE && fstabmount == TRUE && optind + 1 == argc) if (all == FALSE && fstabmount == TRUE && m == NULL)
fprintf(stderr, "Can't find %s in /etc/fstab\n", device); fprintf(stderr, "Can't find %s in /etc/fstab\n", device);
return rc; return rc;

View File

@ -381,9 +381,13 @@ extern int mount_main(int argc, char **argv)
if (!all && optind == argc) if (!all && optind == argc)
show_mounts(); show_mounts();
if (optind < argc) if (optind < argc) {
if (realpath(argv[optind], device) == NULL) /* Don't canonicalize NFS devices. */
if (strchr(argv[optind], ':') != NULL)
safe_strncpy(device, argv[optind], PATH_MAX);
else if (realpath(argv[optind], device) == NULL)
perror_msg_and_die("%s", device); perror_msg_and_die("%s", device);
}
if (optind + 1 < argc) if (optind + 1 < argc)
if (realpath(argv[optind + 1], directory) == NULL) if (realpath(argv[optind + 1], directory) == NULL)
@ -444,7 +448,7 @@ singlemount:
if (fstabmount == TRUE) if (fstabmount == TRUE)
endmntent(f); endmntent(f);
if (all == FALSE && fstabmount == TRUE && optind + 1 == argc) if (all == FALSE && fstabmount == TRUE && m == NULL)
fprintf(stderr, "Can't find %s in /etc/fstab\n", device); fprintf(stderr, "Can't find %s in /etc/fstab\n", device);
return rc; return rc;