wireshark/epan
Peter Wu 3fea3c3709 tcp: fix OoO reassembly when the first data packet is OoO
OoO reassembly assumed that the stream starts with the first data
segment, but this can already be OoO. Use the hint from SYN instead.
The test capture is based on a local capture, post-processed with scapy
to introduce an OoO condition and fixup the frame time.

Bug: 15078
Change-Id: Id0e312bb3d0e7c7f8f1b243a2be9f15c9851c501
Fixes: v2.9.0rc0-1097-gca42331437 ("tcp: add support for reassembling out-of-order segments")
Reviewed-on: https://code.wireshark.org/review/29305
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-08-30 04:07:01 +00:00
..
crypt dot11decrypt(crypt): Fix Dead Store (Dead assignement/Dead increment) Warning found by Clang 2018-06-15 15:19:33 +00:00
dfilter Better name for the routine. 2018-06-18 00:30:37 +00:00
dissectors tcp: fix OoO reassembly when the first data packet is OoO 2018-08-30 04:07:01 +00:00
ftypes Make white space consistent. 2018-06-28 07:32:08 +00:00
wmem wmem_interval_tree: fix no previous prototype for ‘update_edges_after_rotation’ [-Wmissing-prototypes] 2018-07-31 15:38:35 +00:00
wslua epan: Remove unnecessary all protocols registration callback 2018-08-29 23:22:44 +00:00
.editorconfig
CMakeLists.txt CMake: Modernize config-file package support 2018-08-25 18:07:21 +00:00
addr_and_mask.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
addr_and_mask.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
addr_resolv.c Remove tabs around manuf names as shown for BASE_OUI 2018-06-01 09:19:23 +00:00
addr_resolv.h Do IP address resolution synchronously before printing in TShark. 2018-05-23 03:52:09 +00:00
address.h Make AT_VINES a built-in type 2018-08-29 19:36:43 +00:00
address_types.c Make AT_VINES a built-in type 2018-08-29 19:36:43 +00:00
address_types.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
afn.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
afn.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
aftypes.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
aftypes.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
app_mem_usage.c Update a comment. 2018-03-24 04:03:20 +00:00
app_mem_usage.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
arcnet_pids.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
arptypes.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
asn1.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
asn1.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ax25_pids.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
bridged_pids.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
capture_dissectors.c Qt: Implement the capture info dialog. 2018-05-16 04:26:36 +00:00
capture_dissectors.h more SPDX convertions. 2018-02-13 13:57:30 +00:00
charsets.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
charsets.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
chdlctypes.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
color_filters.c glib: Use g_slist_free_full() in a couple of places. 2018-04-17 15:01:24 +00:00
color_filters.h Remove some GTK+-only code. 2018-04-17 03:44:47 +00:00
column-info.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
column-utils.c fix missing parentheses in 'if' statement 2018-05-03 04:09:42 +00:00
column-utils.h colum-utils.h: Fix 325 million -Wdocumentation warnings 2018-03-16 20:28:25 +00:00
column.c Sort our column descriptions. 2018-06-27 23:40:05 +00:00
column.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
conv_id.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
conversation.c Revert "Have find_or_create_conversation() use pinfo->conv_endpoint if present." 2018-08-01 02:55:18 +00:00
conversation.h Revert "Have find_or_create_conversation() use pinfo->conv_endpoint if present." 2018-08-01 02:55:18 +00:00
conversation_debug.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
conversation_table.c Get rid of a GTK+-only field. 2018-05-16 08:16:15 +00:00
conversation_table.h Get rid of a GTK+-only field. 2018-05-16 08:16:15 +00:00
crc6-tvb.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc6-tvb.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc8-tvb.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc8-tvb.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc10-tvb.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc10-tvb.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc16-tvb.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc16-tvb.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc32-tvb.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
crc32-tvb.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
decode_as.c Fix the "pointer to function that generates a label" values. 2018-02-13 18:06:11 +00:00
decode_as.h Fix the "pointer to function that generates a label" values. 2018-02-13 18:06:11 +00:00
diam_dict.h spdx: more licenses converted. 2018-03-07 15:56:44 +00:00
diam_dict.l If we're reading from a string, don't fclose yyin. 2018-04-03 01:04:09 +00:00
disabled_protos.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
disabled_protos.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
dissector_filters.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
dissector_filters.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
dtd.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
dtd_grammar.lemon Use common indenting space in heading 2018-05-01 06:55:55 +00:00
dtd_parse.h Use common indenting space in heading 2018-05-01 06:55:55 +00:00
dtd_parse.l Use DIAG_OFF_FLEX/DIAG_ON_FLEX more consistently. 2018-02-16 19:54:16 +00:00
dtd_preparse.l Add DIAG_OFF_FLEX and DIAG_ON_FLEX for use in Flex scanners. 2018-02-16 10:35:10 +00:00
dvb_chartbl.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
dvb_chartbl.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
eap.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
eapol_keydes_types.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
epan.c epan: Remove unnecessary all protocols registration callback 2018-08-29 23:22:44 +00:00
epan.h epan: Remove unnecessary all protocols registration callback 2018-08-29 23:22:44 +00:00
epan_dissect.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
etypes.h Add Arista Vendor Specific Protocol (Ethertype) dissector 2018-03-22 20:15:12 +00:00
ex-opt.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ex-opt.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
except.c Clean up REPORT_DISSECTOR_BUG(). 2018-03-25 23:49:35 +00:00
except.h Clean up REPORT_DISSECTOR_BUG(). 2018-03-25 23:49:35 +00:00
exceptions.h Handle subset tvbuffs where the length goes past the end of the parent. 2018-04-20 03:18:47 +00:00
exntest.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
expert.c expert: Fix Dead Store (Dead assignement/Dead increment) Warning found by Clang 2018-06-18 08:30:59 +00:00
expert.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
export_object.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
export_object.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
exported_pdu.c export_pdu.c: Fix a memory leak 2018-08-14 11:47:29 +00:00
exported_pdu.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
filter_expressions.c Fix minor leak in filter_expression_new. 2018-04-28 16:28:18 +00:00
filter_expressions.h Remove some GTK+-only code. 2018-04-17 03:44:47 +00:00
follow.c Follow Stream: ensure linear performance with many packets 2018-07-06 07:24:46 +00:00
follow.h Follow Stream: ensure linear performance with many packets 2018-07-06 07:24:46 +00:00
frame_data.c Remove redundant members from wtap_syscall_header. 2018-02-09 02:39:09 +00:00
frame_data.h Older versions of Clang don't understand -Wpedantic. 2018-05-18 22:31:05 +00:00
frame_data_sequence.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
frame_data_sequence.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
funnel.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
funnel.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
garrayfix.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
golay.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
golay.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
guid-utils.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
guid-utils.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
iana_charsets.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
iana_charsets.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
iax2_codec_type.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
in_cksum.c epan: more SPDX convertions. 2018-02-09 14:41:31 +00:00
in_cksum.h epan: more SPDX convertions. 2018-02-09 14:41:31 +00:00
ip_opts.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ipproto.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ipproto.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ipv4.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ipv6.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
lapd_sapi.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
llcsaps.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
maxmind_db.c maxmind_db.c: fix a memory leak 2018-05-26 05:55:56 +00:00
maxmind_db.h MaxMind DB: Shut down our mmdbresolve process. 2018-03-15 17:44:46 +00:00
media_params.c Add wmem alloc parameter to ws_find_media_type_parameter. 2018-03-11 15:07:24 +00:00
media_params.h Add wmem alloc parameter to ws_find_media_type_parameter. 2018-03-11 15:07:24 +00:00
next_tvb.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
next_tvb.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
nlpid.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
oids.c Free g_array_free-related memory leaks 2018-05-14 13:44:23 +00:00
oids.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
oids_test.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
osi-utils.c Fix incorrect formatting of NSAP area addresses/address prefixes. 2018-05-27 18:56:41 +00:00
osi-utils.h Fix incorrect formatting of NSAP area addresses/address prefixes. 2018-05-27 18:56:41 +00:00
oui.h packet-ieee80211.c: Mikrotik IE should be Routerboard, added dissection update 2018-06-28 21:35:27 +00:00
packet.c Handle subset tvbuffs where the length goes past the end of the parent. 2018-04-20 03:18:47 +00:00
packet.h Constify an argument that doesn't need to be non-const. 2018-03-08 02:55:10 +00:00
packet_info.h ERSPAN: Various small cleanups and enhancements 2018-03-18 10:14:03 +00:00
params.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
plugin_if.c plugin_if: fix small memory leak in ext_menubar_add_separator 2018-05-05 05:57:25 +00:00
plugin_if.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ppptypes.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
prefs-int.h Remove some GTK+-only code. 2018-04-17 03:44:47 +00:00
prefs.c prefs: fix range preferences-related crash after switching profiles 2018-08-09 04:52:53 +00:00
prefs.h Qt: Configure the selection color via the preferences 2018-05-25 11:07:01 +00:00
print.c print.c: Print FT_CHAR fields as FT_UINT8 2018-08-05 08:10:13 +00:00
print.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
print.ps
print_stream.c replace SPDX identifier GPL-2.0+ with GPL-2.0-or-later. 2018-02-08 14:57:36 +00:00
print_stream.h replace SPDX identifier GPL-2.0+ with GPL-2.0-or-later. 2018-02-08 14:57:36 +00:00
proto.c epan: Remove unnecessary all protocols registration callback 2018-08-29 23:22:44 +00:00
proto.h epan: Remove unnecessary all protocols registration callback 2018-08-29 23:22:44 +00:00
proto_data.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
proto_data.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ps.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
ptvcursor.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
radius_dict.l Free g_array_free-related memory leaks 2018-05-14 13:44:23 +00:00
range.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
range.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
reassemble.c tcp: add support for reassembling out-of-order segments 2018-06-28 06:10:35 +00:00
reassemble.h tcp: add support for reassembling out-of-order segments 2018-06-28 06:10:35 +00:00
reassemble_test.c reassemble_test: Fix argument type warnings. 2018-07-23 23:19:17 +00:00
reedsolomon.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
reedsolomon.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
register-int.h epan: Remove unnecessary all protocols registration callback 2018-08-29 23:22:44 +00:00
register.c glib: Get rid of GLIB_CHECK_VERSION as we now require 2.32.0 2018-04-16 16:07:46 +00:00
register.h epan: Remove unnecessary all protocols registration callback 2018-08-29 23:22:44 +00:00
req_resp_hdrs.c HTTP: ignore large Content-Length values 2018-08-13 07:57:21 +00:00
req_resp_hdrs.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
rtd_table.c Get rid of some GTK+-only stuff. 2018-05-12 23:01:14 +00:00
rtd_table.h Get rid of some GTK+-only stuff. 2018-05-12 23:01:14 +00:00
rtp_pt.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
sctpppids.h E1AP: add dissector based on v15.0.0 2018-07-06 13:40:50 +00:00
sequence_analysis.c glib: Get rid of GLIB_CHECK_VERSION as we now require 2.32.0 2018-04-16 16:07:46 +00:00
sequence_analysis.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
show_exception.c Put protocol name before "length of contained item...". 2018-04-22 21:45:48 +00:00
show_exception.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
slow_protocol_subtypes.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
sminmpec.h epan: Trivial constant sort order fix - sminmpec.h 2018-04-21 06:10:35 +00:00
srt_table.c Get rid of some GTK+-only stuff. 2018-05-13 19:46:45 +00:00
srt_table.h Get rid of some GTK+-only stuff. 2018-05-13 19:46:45 +00:00
stat_groups.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
stat_tap_ui.c Get rid of some GTK+-only stuff. 2018-05-13 20:21:14 +00:00
stat_tap_ui.h Get rid of some GTK+-only stuff. 2018-05-13 20:21:14 +00:00
stats_tree.c Free g_array_free-related memory leaks 2018-05-14 13:44:23 +00:00
stats_tree.h epan: Remove unnecessary all protocols registration callback 2018-08-29 23:22:44 +00:00
stats_tree_priv.h Remove some GTK+-only code. 2018-04-17 03:44:47 +00:00
stream.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
stream.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
strutil.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
strutil.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
t35.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
t35.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
tap-voip.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
tap.c Remove weird use of volatile qualifier 2018-08-26 00:44:19 +00:00
tap.h Add a tap "finish" callback, called when a listener is removed. 2018-07-21 00:51:13 +00:00
tfs.c tfs: Add high_normal and low_normal 2018-03-11 02:42:41 +00:00
tfs.h tfs: Add high_normal and low_normal 2018-03-11 02:42:41 +00:00
time_fmt.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
timestamp.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
timestamp.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
timestats.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
timestats.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
to_str-int.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
to_str.c epan: Use UTF8 horizontal ellipsis to indicate truncation 2018-08-27 08:07:11 +00:00
to_str.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
tvbparse.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
tvbparse.h Use common indenting space in heading 2018-05-01 06:55:55 +00:00
tvbtest.c Update some comments. 2018-04-20 02:58:36 +00:00
tvbuff-int.h Handle subset tvbuffs where the length goes past the end of the parent. 2018-04-20 03:18:47 +00:00
tvbuff.c tvbuff: add assertion to tvb_skip_wsp_return(). 2018-08-06 10:27:41 +00:00
tvbuff.h Update some comments. 2018-04-20 02:58:36 +00:00
tvbuff_base64.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
tvbuff_composite.c Handle subset tvbuffs where the length goes past the end of the parent. 2018-04-20 03:18:47 +00:00
tvbuff_real.c Handle subset tvbuffs where the length goes past the end of the parent. 2018-04-20 03:18:47 +00:00
tvbuff_subset.c Handle subset tvbuffs where the length goes past the end of the parent. 2018-04-20 03:18:47 +00:00
tvbuff_zlib.c tvbuff_zlib: reject negative lengths to avoid buffer overrun 2018-05-15 17:16:12 +00:00
uat-int.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
uat.c UAT: HEX Values should be allowed the full uint32 range e.g allow 0xffffffff 2018-08-22 03:57:55 +00:00
uat.h UAT: HEX Values should be allowed the full uint32 range e.g allow 0xffffffff 2018-08-22 03:57:55 +00:00
uat_load.l Use DIAG_OFF_FLEX/DIAG_ON_FLEX more consistently. 2018-02-16 19:54:16 +00:00
unit_strings.c Make some arguments const, and remove casting-away of constness. 2018-02-21 05:34:52 +00:00
unit_strings.h Make some arguments const, and remove casting-away of constness. 2018-02-21 05:34:52 +00:00
value_string.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
value_string.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
x264_prt_id.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
xdlc.c epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00
xdlc.h epan: use SPDX indentifiers. 2018-02-08 19:29:45 +00:00