diff options
author | SUZUKI Shinsuke <suz@FreeBSD.org> | 2003-10-31 03:18:45 +0000 |
---|---|---|
committer | SUZUKI Shinsuke <suz@FreeBSD.org> | 2003-10-31 03:18:45 +0000 |
commit | 7a1413f9725c454066ea7865cf097431e4338c5d (patch) | |
tree | f6487ca5acd7bdb47305f68f28000453c99ad9b5 /usr.sbin/route6d/route6d.c | |
parent | aaaad65dcda716a5f7d0c883b9b7f36dccb4de98 (diff) | |
download | src-7a1413f9725c454066ea7865cf097431e4338c5d.tar.gz src-7a1413f9725c454066ea7865cf097431e4338c5d.zip |
fixe remote panic on short packet
Obtained from: KAME
Notes
Notes:
svn path=/head/; revision=121779
Diffstat (limited to 'usr.sbin/route6d/route6d.c')
-rw-r--r-- | usr.sbin/route6d/route6d.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/usr.sbin/route6d/route6d.c b/usr.sbin/route6d/route6d.c index 062291816a3d..b19b799528ba 100644 --- a/usr.sbin/route6d/route6d.c +++ b/usr.sbin/route6d/route6d.c @@ -1126,6 +1126,11 @@ riprecv() if (idx && IN6_IS_ADDR_LINKLOCAL(&fsock.sin6_addr)) SET_IN6_LINKLOCAL_IFINDEX(fsock.sin6_addr, idx); + if (len < sizeof(struct rip6)) { + trace(1, "Packet too short\n"); + return; + } + nh = fsock.sin6_addr; nn = (len - sizeof(struct rip6) + sizeof(struct netinfo6)) / sizeof(struct netinfo6); |