RPCSEC_GSS fixes, from Mike Frisch.
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 30 Aug 2001 18:33:30 +0000 (18:33 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 30 Aug 2001 18:33:30 +0000 (18:33 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3884 f5534014-38df-0310-8fa8-9805f1628bb7

AUTHORS
packet-rpc.c

diff --git a/AUTHORS b/AUTHORS
index 8d1aa9a9ce3ef0744607350a2ba5bf971dcde570..c7968d18abc04e02d7a67188eb840fd31506e714 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -500,6 +500,7 @@ Mike Frisch <mfrisch[AT]saturn.tlug.org> {
        rquota support
        AUTH_DES support
        Tvbuffified NFS dissector
+       RPCSEC_GSS fixes
 }
 
 Burke Lau <burke_lau[AT]agilent.com> {
index 127f44460d68ce6ec9373c6cbdcc2cc6212a154a..f50bc88ea1ec13af3954406bad3a84022e84039a 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for rpc dissection
  * Copyright 1999, Uwe Girlich <Uwe.Girlich@philosys.de>
  * 
- * $Id: packet-rpc.c,v 1.64 2001/07/03 02:05:47 guy Exp $
+ * $Id: packet-rpc.c,v 1.65 2001/08/30 18:33:30 guy Exp $
  * 
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -1068,12 +1068,14 @@ dissect_rpc_authgss_integ_data(tvbuff_t *tvb, packet_info *pinfo,
                proto_tree_add_uint(gtree, hf_rpc_authgss_seq,
                                    tvb, offset+4, 4, seq);
        }
+       offset += 8;
+
        if (dissect_function != NULL) {
                /* offset = */
                call_dissect_function(tvb, pinfo, gtree, offset,
                                      dissect_function, progname);
        }
-       offset += 8 + length;
+       offset += length - 4;
        offset = dissect_rpc_data(tvb, pinfo, tree, hf_rpc_authgss_checksum,
                        offset);
        return offset;
@@ -1498,13 +1500,12 @@ dissect_rpc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                proc = tvb_get_ntohl(tvb, offset+12);
 
                /* Check for RPCSEC_GSS */
-               if (proc == 0) {
-                       flavor = tvb_get_ntohl(tvb, offset+16);
-                       if (flavor == RPCSEC_GSS) {
-                               gss_proc = tvb_get_ntohl(tvb, offset+28);
-                               gss_svc = tvb_get_ntohl(tvb, offset+34);
-                       }
+               flavor = tvb_get_ntohl(tvb, offset+16);
+               if (flavor == RPCSEC_GSS) {
+                       gss_proc = tvb_get_ntohl(tvb, offset+28);
+                       gss_svc = tvb_get_ntohl(tvb, offset+36);
                }
+
                key.prog = prog;
                key.vers = vers;
                key.proc = proc;
@@ -2041,6 +2042,7 @@ proto_register_rpc(void)
                &ett_rpc_cred,
                &ett_rpc_verf,
                &ett_rpc_gids,
+               &ett_rpc_gss_data,
                &ett_rpc_array,
        };