summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_export.c
diff options
context:
space:
mode:
authorkris <kris@FreeBSD.org>2001-09-10 11:28:07 +0000
committerkris <kris@FreeBSD.org>2001-09-10 11:28:07 +0000
commitbd6f9cb9b63e7a70079067566e50b59abc81ce16 (patch)
treefd84e8d4d01cdc0f4ba330211093170c75b99172 /sys/kern/vfs_export.c
parent335f7eeb6361cc1f5a1fd9251b0f63ef3451f5ba (diff)
downloadFreeBSD-src-bd6f9cb9b63e7a70079067566e50b59abc81ce16.zip
FreeBSD-src-bd6f9cb9b63e7a70079067566e50b59abc81ce16.tar.gz
Fix some signed/unsigned integer confusion, and add bounds checking of
arguments to some functions. Obtained from: NetBSD Reviewed by: peter MFC after: 2 weeks
Diffstat (limited to 'sys/kern/vfs_export.c')
-rw-r--r--sys/kern/vfs_export.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c
index 53e67fa..722dca2 100644
--- a/sys/kern/vfs_export.c
+++ b/sys/kern/vfs_export.c
@@ -44,6 +44,7 @@
#include <sys/kernel.h>
#include <sys/socket.h>
#include <sys/malloc.h>
+#include <sys/mbuf.h>
#include <sys/mount.h>
#include <net/radix.h>
#include <sys/domain.h>
@@ -106,6 +107,10 @@ vfs_hang_addrlist(mp, nep, argp)
mp->mnt_flag |= MNT_DEFEXPORTED;
return (0);
}
+
+ if (argp->ex_addrlen > MLEN)
+ return (EINVAL);
+
i = sizeof(struct netcred) + argp->ex_addrlen + argp->ex_masklen;
np = (struct netcred *) malloc(i, M_NETADDR, M_WAITOK | M_ZERO);
saddr = (struct sockaddr *) (np + 1);
OpenPOWER on IntegriCloud