aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorAurelien Aptel <aaptel@suse.com>2017-05-23 18:58:36 +0200
committerAnders Broman <a.broman58@gmail.com>2017-05-24 14:15:38 +0000
commit12d4ca9621ec60c99991cd4c031073182d31421c (patch)
tree155f5c64235fdd69d2fc5bfa14984f7bcd176f3b /epan
parent667782b38845f5154fed9314ce8ab1ee0ca1b5d8 (diff)
SMB2: set session server port in partial capture
When dissecting a capture that does not have a session setup exchange, assume tree connect response packets are coming from the server and set the port accordingly. This is needed for decryption because the decryption key is different depending on which side the message was created on. We need to set the server port to know if a packet was made on the server. Change-Id: I80229ed6d69821bc0c76808e57bdb2fc53fcceb3 Reviewed-on: https://code.wireshark.org/review/21741 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-smb2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/epan/dissectors/packet-smb2.c b/epan/dissectors/packet-smb2.c
index b7145dc03b..2ff982f37f 100644
--- a/epan/dissectors/packet-smb2.c
+++ b/epan/dissectors/packet-smb2.c
@@ -8873,6 +8873,11 @@ dissect_smb2_tid_sesid(packet_info *pinfo _U_, proto_tree *tree, tvbuff_t *tvb,
si->session->sesid = si->sesid;
si->session->auth_frame = (guint32)-1;
si->session->tids = g_hash_table_new(smb2_tid_info_hash, smb2_tid_info_equal);
+ if (si->flags & SMB2_FLAGS_RESPONSE) {
+ si->session->server_port = pinfo->srcport;
+ } else {
+ si->session->server_port = pinfo->destport;
+ }
g_hash_table_insert(si->conv->sesids, si->session, si->session);
return offset;