diff options
author | Stefan Metzmacher <metze@samba.org> | 2015-11-04 23:28:57 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-11-05 02:01:23 +0000 |
commit | ea0e29f3e6c7dd863020e80b4b52fe1519f49930 (patch) | |
tree | fc4a60b201925e127d74bdaca2577d1405574620 /epan | |
parent | ca69e8e3f0733eae89adb1534fa44563619864d2 (diff) |
packet-dcerpc: fix dissecting of decrypted payload
This fixes a regression in commit e0e574d16748313dd8903f886d1af9eb0821fee7.
Change-Id: Iccdeeb488ec70727fc637ca548637e5a5e54ef1c
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-on: https://code.wireshark.org/review/11573
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-dcerpc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c index dd4457956a..149e378c52 100644 --- a/epan/dissectors/packet-dcerpc.c +++ b/epan/dissectors/packet-dcerpc.c @@ -1411,7 +1411,7 @@ dissect_dcerpc_guid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d } } /* tree */ - if (dissector_data->decrypted || (sub_dissect == NULL)) + if (!dissector_data->decrypted || (sub_dissect == NULL)) { show_stub_data(tvb, 0, sub_tree, dissector_data->auth_info, !dissector_data->decrypted); return tvb_captured_length(tvb); @@ -3819,7 +3819,6 @@ dissect_dcerpc_cn_stub(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_item *pi; proto_item *parent_pi; proto_item *dcerpc_tree_item; - gboolean decrypted = FALSE; save_fragmented = pinfo->fragmented; @@ -3876,7 +3875,6 @@ dissect_dcerpc_cn_stub(tvbuff_t *tvb, int offset, packet_info *pinfo, hdr->ptype == PDU_REQ, auth_info); if (result) { - decrypted = TRUE; proto_tree_add_item(dcerpc_tree, hf_dcerpc_encrypted_stub_data, payload_tvb, 0, -1, ENC_NA); add_new_data_source( @@ -3893,7 +3891,9 @@ dissect_dcerpc_cn_stub(tvbuff_t *tvb, int offset, packet_info *pinfo, if (PFC_NOT_FRAGMENTED(hdr)) { pinfo->fragmented = FALSE; - dcerpc_try_handoff(pinfo, tree, dcerpc_tree, ((decrypted_tvb != NULL) ? decrypted_tvb : payload_tvb), decrypted, + dcerpc_try_handoff(pinfo, tree, dcerpc_tree, + ((decrypted_tvb != NULL) ? decrypted_tvb : payload_tvb), + ((decrypted_tvb != NULL) ? TRUE : FALSE), hdr->drep, di, auth_info); pinfo->fragmented = save_fragmented; @@ -3915,7 +3915,9 @@ dissect_dcerpc_cn_stub(tvbuff_t *tvb, int offset, packet_info *pinfo, */ if ( (!dcerpc_reassemble) && (hdr->flags & PFC_FIRST_FRAG) ) { - dcerpc_try_handoff(pinfo, tree, dcerpc_tree, ((decrypted_tvb != NULL) ? decrypted_tvb : payload_tvb), decrypted, + dcerpc_try_handoff(pinfo, tree, dcerpc_tree, + ((decrypted_tvb != NULL) ? decrypted_tvb : payload_tvb), + ((decrypted_tvb != NULL) ? TRUE : FALSE), hdr->drep, di, auth_info); expert_add_info_format(pinfo, NULL, &ei_dcerpc_fragment, "%s fragment", fragment_type(hdr->flags)); |