diff options
author | Xin LI <delphij@FreeBSD.org> | 2015-08-05 22:04:56 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2015-08-05 22:04:56 +0000 |
commit | b07d93f53871940d82923340575bf5310dc4e561 (patch) | |
tree | 77859919151185174ed9c922929efdc6987e638e /sbin | |
parent | 3fd78bfab2cdb03bf9a701097e68c8ead33722a2 (diff) | |
download | src-b07d93f53871940d82923340575bf5310dc4e561.tar.gz src-b07d93f53871940d82923340575bf5310dc4e561.zip |
Fix a bug which could make routed(8) daemon exit by sending a special RIP
query from a remote machine, similar to SA-14:21.routed.
Submitted by: hrs
Notes
Notes:
svn path=/head/; revision=286347
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/routed/input.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sbin/routed/input.c b/sbin/routed/input.c index 895ef507db7e..bc030283e15f 100644 --- a/sbin/routed/input.c +++ b/sbin/routed/input.c @@ -160,6 +160,12 @@ input(struct sockaddr_in *from, /* received from this IP address */ trace_rip("Recv", "from", from, sifp, rip, cc); + if (sifp == 0) { + trace_pkt(" discard a request from an indirect router" + " (possibly an attack)"); + return; + } + if (rip->rip_vers == 0) { msglim(&bad_router, FROM_NADDR, "RIP version 0, cmd %d, packet received from %s", |