diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2012-03-28 09:42:05 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2012-03-28 09:42:05 +0000 |
commit | 3d81f3612b8c24951417215a38424e5ab5ca68b7 (patch) | |
tree | 654357958c27c7b9061b13e72ec9253d967caf64 /epan/dissectors/packet-rpc.c | |
parent | 7e112bec91edca3d5302157800e5c7bc6999ee5b (diff) | |
download | wireshark-3d81f3612b8c24951417215a38424e5ab5ca68b7.tar.gz |
ONC-RPC: When a GSS context is destroyed, that NULL procedure call does not carry neither a verifier nor a payload.
Stop decoding the packed immediately after the credentials so that we dont incorrectly flag these packets as malformed.
svn path=/trunk/; revision=41817
Diffstat (limited to 'epan/dissectors/packet-rpc.c')
-rw-r--r-- | epan/dissectors/packet-rpc.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c index 41f69d26b2..61206e076a 100644 --- a/epan/dissectors/packet-rpc.c +++ b/epan/dissectors/packet-rpc.c @@ -1770,7 +1770,6 @@ make_fake_rpc_prog_if_needed (rpc_prog_info_key *prpc_prog_key, guint prog_ver) } } - static gboolean dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, tvbuff_t *frag_tvb, fragment_data *ipfd_head, gboolean is_tcp, @@ -2294,12 +2293,17 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, offset += 16; offset = dissect_rpc_cred(tvb, rpc_tree, offset, pinfo, rpc_conv_info); - offset = dissect_rpc_verf(tvb, rpc_tree, offset, msg_type, pinfo); - /* pass rpc_info to subdissectors */ rpc_call->request=TRUE; pinfo->private_data=rpc_call; + if (gss_proc == RPCSEC_GSS_DESTROY) { + /* there is no verifier for GSS destroy packets */ + break; + } + + offset = dissect_rpc_verf(tvb, rpc_tree, offset, msg_type, pinfo); + /* go to the next dissector */ break; /* end of RPC call */ |