Date: Thu, 15 Feb 2001 18:46:04 +0100 (CET) From: Martin Blapp <mb@imp.ch> To: adrian@freebsd.org Cc: current@freebsd.org Subject: Fix for mountpath lenght Message-ID: <Pine.BSF.4.21.0102151824320.5862-100000@levais.imp.ch>
next in thread | raw e-mail | index | archive | help
In mount.h, we have a #define MNAMELEN 80
and in struct statfs {} we have:
char f_mntonname[MNAMELEN]; /* directory on which mounted */
but the kernel does no check to see if the mountpath is longer
than MNAMELEN, it just accepts it ? It's impossible to umount(8)
it, because umount(8) does not like to unmount some device which
does not belong to the mountpoint.
--- vfs_syscalls.c Sun Nov 26 03:30:05 2000
+++ vfs_syscalls.c.new Thu Feb 15 18:22:13 2001
@@ -140,6 +140,8 @@
/*
* Get vnode to be covered
*/
+ if (strlen(SCARG(uap, path)) > MNAMELEN)
+ return (ENAMETOOLONG);
NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE,
SCARG(uap, path), p);
if ((error = namei(&nd)) != 0)
Martin Blapp, mb@imp.ch
------------------------------------------------
Improware AG, UNIX solution and service provider
Zurlindenstrasse 29, 4133 Pratteln, Switzerland
Phone: +41 79 370 26 05, Fax: +41 61 826 93 01
------------------------------------------------
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0102151824320.5862-100000>
