From b5dead8e60a315739a66e52d947c6f0e852d21f1 Mon Sep 17 00:00:00 2001 From: Lukas Emersberger Date: Thu, 23 Oct 2014 09:13:39 +0200 Subject: [PATCH] epl: Reassembly table fix Fixed an error that retransmitted frames were added to the reassembly table. Change-Id: I314412cb8f2ce49142e4b7f001613948f5e03bf6 Reviewed-on: https://code.wireshark.org/review/4916 Reviewed-by: Roland Knall Reviewed-by: Lukas Emersberger Reviewed-by: Michael Mann --- epan/dissectors/packet-epl.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/epan/dissectors/packet-epl.c b/epan/dissectors/packet-epl.c index 29b666aab0..23bb8ae758 100644 --- a/epan/dissectors/packet-epl.c +++ b/epan/dissectors/packet-epl.c @@ -2676,16 +2676,19 @@ dissect_epl_sdo_command_write_by_index(proto_tree *epl_tree, tvbuff_t *tvb, pack /* save the current frame and increase the counter */ epl_asnd_sdo_reassembly_write.frame[epl_segmentation.recv][epl_segmentation.send] = frame; ct += 1; + /* add the frame to reassembly_table */ + frag_msg = fragment_add_seq_check(&epl_reassembly_table, tvb, offset, pinfo, + fragmentId, NULL, ct, payload_length, end_segment ? FALSE : TRUE ); } else if(epl_asnd_sdo_reassembly_write.frame[epl_segmentation.recv][epl_segmentation.send] == 0x00) { /* save the current frame and increase counter */ epl_asnd_sdo_reassembly_write.frame[epl_segmentation.recv][epl_segmentation.send] = frame; ct += 1; - } - /* add the frame to reassembly_table */ - frag_msg = fragment_add_seq_check(&epl_reassembly_table, tvb, offset, pinfo, + /* add the frame to reassembly_table */ + frag_msg = fragment_add_seq_check(&epl_reassembly_table, tvb, offset, pinfo, fragmentId, NULL, ct, payload_length, end_segment ? FALSE : TRUE ); + } /* if the reassembly_table is not Null and the frame stored is the same as the current frame */ if(frag_msg != NULL && (epl_asnd_sdo_reassembly_write.frame[epl_segmentation.recv][epl_segmentation.send] == frame))