This looks right, except that Bruce says that SCARG isn't to be
used, instead just use uap->path.

-Alfred

* Martin Blapp <[EMAIL PROTECTED]> [010215 09:46] wrote:
> 
> 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, [EMAIL PROTECTED]
> ------------------------------------------------
> 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 [EMAIL PROTECTED]
> with "unsubscribe freebsd-current" in the body of the message

-- 
-Alfred Perlstein - [[EMAIL PROTECTED]|[EMAIL PROTECTED]]
"I have the heart of a child; I keep it in a jar on my desk."


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to