Date: Wed, 16 Apr 2003 14:21:47 +0300 From: Ruslan Ermilov <ru@FreeBSD.org> To: Brian Feldman <green@FreeBSD.org> Cc: current@FreeBSD.org Subject: umount(8) of a symlink Message-ID: <20030416112147.GA38592@sunbay.com>
next in thread | raw e-mail | index | archive | help
--envbJBWh7q8WU6mo
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Hi!
If /mnt is a symlink, "mount ... /mnt" succeeds, but "umount /mnt"
does not. Any objections to this patch?
%%%
Index: umount.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/sbin/umount/umount.c,v
retrieving revision 1.22.2.1
diff -u -r1.22.2.1 umount.c
--- umount.c 13 Dec 2001 01:27:15 -0000 1.22.2.1
+++ umount.c 16 Apr 2003 11:19:26 -0000
@@ -626,9 +626,10 @@
if (ISDOT(name + 1) || ISDOTDOT(name + 1))
strcpy(realname, "/");
else {
- if ((dirname =3D strrchr(name + 1, '/')) =3D=3D NULL)
- snprintf(realname, MAXPATHLEN, "%s", name);
- else
+ if ((dirname =3D strrchr(name + 1, '/')) =3D=3D NULL) {
+ if ((realpath(name, realname)) =3D=3D NULL)
+ return (NULL);
+ } else
havedir =3D 1;
}
} else {
%%%
Cheers,
--=20
Ruslan Ermilov Sysadmin and DBA,
ru@sunbay.com Sunbay Software AG,
ru@FreeBSD.org FreeBSD committer,
+380.652.512.251 Simferopol, Ukraine
http://www.FreeBSD.org The Power To Serve
http://www.oracle.com Enabling The Information Age
--envbJBWh7q8WU6mo
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)
iD8DBQE+nTzLUkv4P6juNwoRAmPSAJ9uSvE8DI/6Ek+7yIsPGqWom6sV2gCfefhW
Ra2Snv3kvMPdinNXn8CKj10=
=V4Ks
-----END PGP SIGNATURE-----
--envbJBWh7q8WU6mo--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030416112147.GA38592>
