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>