]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: reset packet size on tcp connection reset
authoranuradhak <anuradhak@cumulusnetworks.com>
Sat, 3 Dec 2016 00:12:35 +0000 (16:12 -0800)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:18 +0000 (20:26 -0500)
If we were in the middle of a partial read when the tcp connection is
reset we were clearing the buffers but not the packet size. This can be
problematic when the connection is re-established.

There is no easy way to repro and test this without scale (and a timing
pattern that is hard to predict). So this change is mostly untested.

Ticket: CM-13852
Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
pimd/pim_msdp.c

index c90a7e1e2ad56c827498f03a6c0a50bf99bc3aec..93141f39dedb4521b74f7da186d81de337fdcc9d 100644 (file)
@@ -850,6 +850,7 @@ pim_msdp_peer_stop_tcp_conn(struct pim_msdp_peer *mp, bool chg_state)
   PIM_MSDP_PEER_WRITE_OFF(mp);
 
   /* reset buffers */
+  mp->packet_size = 0;
   if (mp->ibuf)
     stream_reset(mp->ibuf);
   if (mp->obuf)