diff options
author | ajs <ajs> | 2005-01-29 15:52:07 +0000 |
---|---|---|
committer | ajs <ajs> | 2005-01-29 15:52:07 +0000 |
commit | 3321ed0bef906c3a5bcb139b1034145c5e362ffc (patch) | |
tree | f1fb620fe63a58bbc31ffa805d43ece1236e59bc /ospfd/ospf_packet.c | |
parent | 438c07c80599ff3a275f8ca7d816cb164682a352 (diff) | |
download | quagga-3321ed0bef906c3a5bcb139b1034145c5e362ffc.tar.bz2 quagga-3321ed0bef906c3a5bcb139b1034145c5e362ffc.tar.xz |
2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospf_packet.c: (ospf_packet_add) If oi->obuf is NULL, print
an error message and return.
(ospf_read) If the interface state is ISM_InterfaceDown, issue
a warning message and ignore the packet.
Diffstat (limited to 'ospfd/ospf_packet.c')
-rw-r--r-- | ospfd/ospf_packet.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index f636e2be..45dabc54 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -192,6 +192,17 @@ ospf_fifo_free (struct ospf_fifo *fifo) void ospf_packet_add (struct ospf_interface *oi, struct ospf_packet *op) { + if (!oi->obuf) + { + zlog_err("ospf_packet_add(interface %s in state %d [%s], packet type %s, " + "destination %s) called with NULL obuf, ignoring " + "(please report this bug)!\n", + IF_NAME(oi), oi->state, LOOKUP (ospf_ism_state_msg, oi->state), + ospf_packet_type_str[stream_getc_from(op->s, 1)], + inet_ntoa (op->dst)); + return; + } + /* Add packet to end of queue. */ ospf_fifo_push (oi->obuf, op); @@ -2419,6 +2430,14 @@ ospf_read (struct thread *thread) stream_free (ibuf); return 0; } + else if (oi->state == ISM_InterfaceDown) + { + zlog_warn ("Ignoring packet from [%s] received on interface that is " + "down [%s]", + inet_ntoa (iph->ip_src), ifp->name); + stream_free (ibuf); + return 0; + } /* * If the received packet is destined for AllDRouters, the packet |