Wireshark-commits: [Wireshark-commits] rev 48011: /trunk/epan/ /trunk/epan/: exceptions.h reassembl

Date: Sat, 02 Mar 2013 16:39:57 GMT
http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=48011

User: eapache
Date: 2013/03/02 08:39 AM

Log:
 Define a new exception for reassembly errors, and throw it in several cases
 instead of using DISSECTOR_ASSERT. When a dissector passes bad data to the
 reassembly machine, that isn't necessarily the dissector's fault - the data may
 come straight from the packet, and the dissector may not have enough information
 to know it's bad without telling the reassembly machine in the first place.
 
 Also fix a bug in the reassembly machine. If it were given a fragment and all of
 the following conditions were met:
 - the other associated fragments were already marked as done (reassembled)
 - the fragment went beyond the end of the conceptual reassembled buffer
 - the dissector had not set the PARTIAL_REASSEMBLY flag
 then the reassembly machine would incorrectly think there was an overlap and
 run past the end of the already-reassembled buffer.
 
 Should fix the rest of
 https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8380
 
 #BACKPORT
 This is probably too big and intrusive to backport directly, and parts of it
 will need adapting anyways since reassemble.c has changed. But the bug exists
 and crashes in 1.6 and 1.8, so we'll have to do something.

Directory: /trunk/epan/
  Changes    Path                Action
  +26 -2     exceptions.h        Modified
  +47 -34    reassemble.c        Modified
  +17 -0     show_exception.c    Modified