diff options
-rw-r--r-- | sys/kern/uipc_sockbuf.c | 2 | ||||
-rw-r--r-- | sys/kern/uipc_socket2.c | 2 | ||||
-rw-r--r-- | sys/kern/vfs_export.c | 2 |
3 files changed, 6 insertions, 0 deletions
diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index b0d366a..6feeb91 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -626,8 +626,10 @@ sbappendaddr(sb, asa, m0, control) space += m_length(control, &n); if (space > sbspace(sb)) return (0); +#if MSIZE <= 256 if (asa->sa_len > MLEN) return (0); +#endif MGET(m, M_DONTWAIT, MT_SONAME); if (m == 0) return (0); diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c index b0d366a..6feeb91 100644 --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -626,8 +626,10 @@ sbappendaddr(sb, asa, m0, control) space += m_length(control, &n); if (space > sbspace(sb)) return (0); +#if MSIZE <= 256 if (asa->sa_len > MLEN) return (0); +#endif MGET(m, M_DONTWAIT, MT_SONAME); if (m == 0) return (0); diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index b1a536b..7609ac0 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -120,8 +120,10 @@ vfs_hang_addrlist(mp, nep, argp) return (0); } +#if MSIZE <= 256 if (argp->ex_addrlen > MLEN) return (EINVAL); +#endif i = sizeof(struct netcred) + argp->ex_addrlen + argp->ex_masklen; np = (struct netcred *) malloc(i, M_NETADDR, M_WAITOK | M_ZERO); |