aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dcerpc.c
diff options
context:
space:
mode:
authorJohn Thacker <johnthacker@gmail.com>2022-06-09 22:49:03 -0400
committerA Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2022-06-14 00:59:34 +0000
commitf1cbc6b6623074ad6f403993e9f0cfee9bee4300 (patch)
treea74405dc8a2be44b16f8925e06089ca1f58688fb /epan/dissectors/packet-dcerpc.c
parent47c418d4195327d9b506a39ba078838dc4a45204 (diff)
epan: Remove fragment_get_reassembled()
Because completed reassemblies are hashed in the reassembled_table for all the frame numbers that contributed fragments, fragment_get_reassembled_id() works wherever fragment_get_reassembled() does, and also works where the fragment id is not the frame number. However, since the reassembled_table hash key only depends on the fragment id and the frame number, it only allows a frame to have one reassembly with a given fragment id. Some protocols can have more than one reassembly with a given fragment id (that differ on addresses or other keys), such as GSM SMS, and the wrong reassembly is retrieved on the second pass in those cases. For this reason, we might want to add additional key elements to reassembled_table, such as layer number. fragment_get_reassembled_id already takes packet_info as a parameter and can accommodate that without further changes, but fragment_get_reassembled cannot, so remove the latter in favor of the former.
Diffstat (limited to 'epan/dissectors/packet-dcerpc.c')
-rw-r--r--epan/dissectors/packet-dcerpc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c
index 6c410be296..07b07dba33 100644
--- a/epan/dissectors/packet-dcerpc.c
+++ b/epan/dissectors/packet-dcerpc.c
@@ -4450,7 +4450,7 @@ dissect_dcerpc_cn_stub(tvbuff_t *tvb, int offset, packet_info *pinfo,
then exit
*/
if (pinfo->fd->visited) {
- fd_head = fragment_get_reassembled(&dcerpc_co_reassembly_table, frame);
+ fd_head = fragment_get_reassembled_id(&dcerpc_co_reassembly_table, pinfo, frame);
goto end_cn_stub;
}