summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_syscalls.c
diff options
context:
space:
mode:
authornectar <nectar@FreeBSD.org>2002-08-09 12:58:11 +0000
committernectar <nectar@FreeBSD.org>2002-08-09 12:58:11 +0000
commit6cc73b8947429ac97c2d680a6439d5d67678de07 (patch)
tree2e5c0f209c3a1c2960ece2e906ce0932c5bc9507 /sys/kern/uipc_syscalls.c
parentdd72b72c9a7d8a79c710a9f9e5d548a64b5425bd (diff)
downloadFreeBSD-src-6cc73b8947429ac97c2d680a6439d5d67678de07.zip
FreeBSD-src-6cc73b8947429ac97c2d680a6439d5d67678de07.tar.gz
While we're at it, add range checks similar to those in previous commit to
getsockname() and getpeername(), too.
Diffstat (limited to 'sys/kern/uipc_syscalls.c')
-rw-r--r--sys/kern/uipc_syscalls.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index 9eb2435..35f89f2 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -1354,6 +1354,10 @@ getsockname1(td, uap, compat)
error = copyin(uap->alen, &len, sizeof (len));
if (error)
goto done1;
+ if (len < 0) {
+ error = EINVAL;
+ goto done1;
+ }
sa = 0;
error = (*so->so_proto->pr_usrreqs->pru_sockaddr)(so, &sa);
if (error)
@@ -1438,6 +1442,10 @@ getpeername1(td, uap, compat)
error = copyin(uap->alen, &len, sizeof (len));
if (error)
goto done1;
+ if (len < 0) {
+ error = EINVAL;
+ goto done1;
+ }
sa = 0;
error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, &sa);
if (error)
OpenPOWER on IntegriCloud