From: Matt Kraai Date: Fri, 4 May 2001 14:49:58 +0000 (-0000) Subject: Fix two bugs reported by Ralph Jones. X-Git-Tag: 0_52~243 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e6bf66eada0a5d34d2a04fba1638d3f7dc5cd276;p=oweals%2Fbusybox.git Fix two bugs reported by Ralph Jones. --- diff --git a/mount.c b/mount.c index 89eb099c5..9d61bd3e3 100644 --- a/mount.c +++ b/mount.c @@ -381,9 +381,13 @@ extern int mount_main(int argc, char **argv) if (!all && optind == argc) show_mounts(); - if (optind < argc) - if (realpath(argv[optind], device) == NULL) + if (optind < argc) { + /* 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); + } if (optind + 1 < argc) if (realpath(argv[optind + 1], directory) == NULL) @@ -444,7 +448,7 @@ singlemount: if (fstabmount == TRUE) 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); return rc; diff --git a/util-linux/mount.c b/util-linux/mount.c index 89eb099c5..9d61bd3e3 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c @@ -381,9 +381,13 @@ extern int mount_main(int argc, char **argv) if (!all && optind == argc) show_mounts(); - if (optind < argc) - if (realpath(argv[optind], device) == NULL) + if (optind < argc) { + /* 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); + } if (optind + 1 < argc) if (realpath(argv[optind + 1], directory) == NULL) @@ -444,7 +448,7 @@ singlemount: if (fstabmount == TRUE) 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); return rc;