Fix handling of IPv6 atomic fragments.

The FragReassembler expire_timer was left uninitialized until after
the first fragment is added, but since the atomic fragment is also
the last, the reassembler thought expire_timer needed to be deleted.
This fix just initializes expire_timer before the first fragment is
added.
This commit is contained in:
Jon Siwek 2012-04-04 15:27:43 -05:00
parent 97652bc144
commit d8d83f590b
4 changed files with 13 additions and 2 deletions

View file

@ -52,8 +52,6 @@ FragReassembler::FragReassembler(NetSessions* arg_s,
frag_size = 0; // flag meaning "not known"
next_proto = ip->NextProto();
AddFragment(t, ip, pkt);
if ( frag_timeout != 0.0 )
{
expire_timer = new FragTimer(this, t + frag_timeout);
@ -61,6 +59,8 @@ FragReassembler::FragReassembler(NetSessions* arg_s,
}
else
expire_timer = 0;
AddFragment(t, ip, pkt);
}
FragReassembler::~FragReassembler()