wireshark/epan
Evan Huus b20db86a6f 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.


svn path=/trunk/; revision=48011
2013-03-02 16:39:56 +00:00
..
crypt From beroset: 2013-03-02 12:10:56 +00:00
dfilter Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
dissectors Pass the same offset to tvb_ensure_bytes_exist and fragment_add. 2013-03-02 16:23:21 +00:00
ftypes Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
wmem Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
wslua Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
wspython Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
CMakeLists.txt Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
Makefile.am Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
Makefile.common Move show_exception() and show_reported_bounds_error() to 2013-02-27 22:43:54 +00:00
Makefile.nmake Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
addr_and_mask.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
addr_and_mask.h
addr_resolv.c Add a ModulePreferencesScrollArea widget which builds a scrollable frame 2013-02-08 01:16:46 +00:00
addr_resolv.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
address.h a DVB-CI session number is not globally unique, it's only unique per 2013-02-05 20:38:15 +00:00
address_to_str.c Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
adler32.c Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
adler32.h Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
afn.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
afn.h
aftypes.h
arcnet_pids.h
arptypes.h
asm_utils.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
asm_utils.h
asm_utils_win32_x86.asm
asn1.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
asn1.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
atalk-utils.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
atalk-utils.h
ax25_pids.h Ethereal -> Wireshark; Update FSF address. 2012-12-04 14:23:53 +00:00
base64.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
base64.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
bitswap.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
bitswap.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
bridged_pids.h
camel-persistentdata.c String passed to val_to_str() must have int format specifier (%u, %d, %x, and so on...). 2013-02-21 21:04:59 +00:00
camel-persistentdata.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
charsets.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
charsets.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
chdlctypes.h
circuit.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
circuit.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
codecs.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
codecs.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
column-utils.c LUA API improvements 2013-02-25 20:43:06 +00:00
column-utils.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
column.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
column.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
column_info.h
conv_id.h
conversation.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
conversation.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
crc8-tvb.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
crc8-tvb.h
crc16-tvb.c Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
crc16-tvb.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
crc32-tvb.c Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
crc32-tvb.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
diam_dict.h replace "unsigned" datatype with "guint". Some mpeg files needed "unsigned int" instead. 2013-01-04 05:22:43 +00:00
diam_dict.l Add %option noinput to a bunch of Flex files, as we aren't using the 2013-02-10 19:13:07 +00:00
dissector_filters.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
dissector_filters.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
doxygen.cfg.in
dtd.h
dtd_grammar.lemon We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
dtd_parse.h
dtd_parse.l Add %option noinput to a bunch of Flex files, as we aren't using the 2013-02-10 19:13:07 +00:00
dtd_preparse.l Add %option noinput to a bunch of Flex files, as we aren't using the 2013-02-10 19:13:07 +00:00
eap.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
emem.c As suggested in comments in sl_alloc() and sl_free(): add a new environment 2013-01-16 03:34:29 +00:00
emem.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
enterprise-numbers [Automatic manuf, services and enterprise-numbers update for 2013-02-24] 2013-02-24 15:03:25 +00:00
epan.c Bugfix Lua pinfo.cols.protocol not holding value in postdissector 2013-02-25 17:32:25 +00:00
epan.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
epan_dissect.h Revert changes to ep_ allocator, revert edt ref-counting. 2012-10-10 19:05:30 +00:00
etypes.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
ex-opt.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
ex-opt.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
except.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
except.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
exceptions.h Define a new exception for reassembly errors, and throw it in several cases 2013-03-02 16:39:56 +00:00
exntest.c
expert.c Move expert_group_vals expert_severity_vals constant definitions to expert.h 2013-03-02 01:00:20 +00:00
expert.h Move expert_group_vals expert_severity_vals constant definitions to expert.h 2013-03-02 01:00:20 +00:00
filesystem.c Fix spelling/typos found using a list of commonly misspelled words. 2013-02-26 04:42:26 +00:00
filesystem.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
filter_expressions.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
filter_expressions.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
follow.c Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
follow.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
frame_data.c Add support for displaying the Packet Block Flags Word of pcapng. 2012-12-22 19:48:17 +00:00
frame_data.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
frequency-utils.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
frequency-utils.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
funnel.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
funnel.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
garrayfix.h
gcp.c Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
gcp.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
geoip_db.c String passed to val_to_str() must have int format specifier (%u, %d, %x, and so on...). 2013-02-21 21:04:59 +00:00
geoip_db.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
golay.c
golay.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
greproto.h
guid-utils.c it's ==> its & its ==> it's as needed. 2013-02-26 02:19:57 +00:00
guid-utils.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
h225-persistentdata.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
h225-persistentdata.h
iana_snap_pid.h
iax2_codec_type.h
in_cksum.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
in_cksum.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
ip_opts.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
ipproto.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
ipproto.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
ipv4.c When comparing fvalue_t we don't modify them, make arguments const. 2012-11-06 13:28:59 +00:00
ipv4.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
ipv6-utils.h
lapd_sapi.h
libwireshark.vcproj Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
llcsaps.h
next_tvb.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
next_tvb.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
nlpid.h
nstime.c
nstime.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
oids.c Fixing CID 280433 and 280357. 2013-01-14 07:43:14 +00:00
oids.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
osi-utils.c Clean up white space. 2012-12-21 00:43:00 +00:00
osi-utils.h
oui.h From Andrei Emeltchenko: Add OUI_BLUETOOTH part of https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7633 bt-oui: Add decoding Bluetooth High Speed over wireless 2012-11-04 12:47:02 +00:00
packet.c Move show_exception() and show_reported_bounds_error() to 2013-02-27 22:43:54 +00:00
packet.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
packet_info.h Only include wmem_core.h in packet_info.h. It's not technically a 2012-12-19 23:11:22 +00:00
params.h gerald@ethereal.com -> gerald@wireshark.org 2013-01-31 21:02:23 +00:00
pint.h
plugins.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
plugins.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
ppptypes.h
prefs-int.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
prefs.c it's ==> its & its ==> it's as needed. 2013-02-26 02:19:57 +00:00
prefs.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
proto.c From beroset: 2013-03-02 12:10:56 +00:00
proto.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
ptvcursor.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
radius_dict.l Add %option noinput to a bunch of Flex files, as we aren't using the 2013-02-10 19:13:07 +00:00
range.c Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
range.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
reassemble.c Define a new exception for reassembly errors, and throw it in several cases 2013-03-02 16:39:56 +00:00
reassemble.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
reassemble_test.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
reedsolomon.c
reedsolomon.h
report_err.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
report_err.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
req_resp_hdrs.c Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
req_resp_hdrs.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
rtp_pt.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
sctpppids.h
show_exception.c Define a new exception for reassembly errors, and throw it in several cases 2013-03-02 16:39:56 +00:00
show_exception.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
sigcomp-udvm.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
sigcomp-udvm.h
sigcomp_state_hdlr.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
sigcomp_state_hdlr.h
slab.h
sminmpec.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
sna-utils.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
sna-utils.h
stat_cmd_args.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
stat_cmd_args.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
stats_tree.c it's ==> its & its ==> it's as needed. 2013-02-26 02:19:57 +00:00
stats_tree.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
stats_tree_priv.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
stream.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
stream.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
strutil.c Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
strutil.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
t35.c
t35.h
tap-voip.h
tap.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
tap.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
tcap-persistentdata.c Fix spelling/typos found using a list of commonly misspelled words. 2013-02-26 04:42:26 +00:00
tcap-persistentdata.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
tfs.c Remove some "duplicate" TFS in 802.11 field capability Add in use / not in use in common TFS 2013-02-24 19:09:04 +00:00
tfs.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
time_fmt.h
timestamp.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
timestamp.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
to_str.c Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
to_str.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
tpg.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
tpg.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
tvbparse.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
tvbparse.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
tvbtest.c Remove obsolete & incorrect comment: 2012-10-29 16:19:31 +00:00
tvbuff-int.h
tvbuff.c Fix spelling/typos found using a list of commonly misspelled words. 2013-02-26 04:42:26 +00:00
tvbuff.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
uat-int.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
uat.c Constify the second argument to uat_load(), to squelch some warnings. 2013-02-08 09:06:08 +00:00
uat.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
uat_load.l Add %option noinput to a bunch of Flex files, as we aren't using the 2013-02-10 19:13:07 +00:00
value_string.c String passed to val_to_str() must have int format specifier (%u, %d, %x, and so on...). 2013-02-21 21:04:59 +00:00
value_string.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00
x264_prt_id.h
xdlc.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:48:30 +00:00
xdlc.h Export libwireshark symbols using WS_DLL_PUBLIC define 2013-03-01 23:53:11 +00:00