summaryrefslogtreecommitdiffstats
path: root/sys/net/rtsock.c
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1995-10-13 16:01:59 +0000
committerwollman <wollman@FreeBSD.org>1995-10-13 16:01:59 +0000
commitad2a8dc42d82628e3758c1c5de0f70393ed2234d (patch)
treefd25363662c0642b38e27177ed3d859fd047e195 /sys/net/rtsock.c
parent7c65eebe94ed0d41d086ee37caa84775d6510e19 (diff)
downloadFreeBSD-src-ad2a8dc42d82628e3758c1c5de0f70393ed2234d.zip
FreeBSD-src-ad2a8dc42d82628e3758c1c5de0f70393ed2234d.tar.gz
Protect against routing socket messages with way-too-big address families.
Submitted by: Keith Sklower by way of Paul Traina
Diffstat (limited to 'sys/net/rtsock.c')
-rw-r--r--sys/net/rtsock.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c
index fe28cf9..2601ad7 100644
--- a/sys/net/rtsock.c
+++ b/sys/net/rtsock.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)rtsock.c 8.5 (Berkeley) 11/2/94
- * $Id: rtsock.c,v 1.13 1995/05/30 08:08:31 rgrimes Exp $
+ * $Id: rtsock.c,v 1.14 1995/10/09 04:06:28 bde Exp $
*/
#include <sys/param.h>
@@ -169,7 +169,8 @@ route_output(m, so)
rtm->rtm_pid = curproc->p_pid;
info.rti_addrs = rtm->rtm_addrs;
rt_xaddrs((caddr_t)(rtm + 1), len + (caddr_t)rtm, &info);
- if (dst == 0)
+ if (dst == 0 || (dst->sa_family >= AF_MAX)
+ || (gate != 0 && (gate->sa_family >= AF_MAX)))
senderr(EINVAL);
if (genmask) {
struct radix_node *t;
OpenPOWER on IntegriCloud