Skip site navigation (1)Skip section navigation (2)
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>