]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-nfs.c
Add an "fn_printzp()" routine for printing null-padded strings (strings
[tcpdump] / print-nfs.c
index 03e39fb921c0b8f88f6b531deb3cf211a28cc83b..7502823e51883f3260de43e9394cb9cd9e14a30b 100644 (file)
@@ -21,7 +21,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-nfs.c,v 1.105 2005-01-05 03:55:05 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-nfs.c,v 1.106.2.2 2005-05-06 07:57:18 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -388,9 +388,11 @@ parsefn(register const u_int32_t *dp)
        cp = (u_char *)dp;
        /* Update 32-bit pointer (NFS filenames padded to 32-bit boundaries) */
        dp += ((len + 3) & ~3) / sizeof(*dp);
-       /* XXX seems like we should be checking the length */
        putchar('"');
-       (void) fn_printn(cp, len, NULL);
+       if (fn_printn(cp, len, snapend)) {
+               putchar('"');
+               goto trunc;
+       }
        putchar('"');
 
        return (dp);
@@ -517,9 +519,10 @@ nfsreq_print(register const u_char *bp, u_int length,
                if ((dp = parsereq(rp, length)) != NULL &&
                    (dp = parsefh(dp, v3)) != NULL) {
                        if (v3) {
-                               TCHECK(dp[3]);
-                               printf(" %u bytes @ %" PRIu64,
-                                               EXTRACT_32BITS(&dp[3]),
+                               TCHECK(dp[2]);
+                               printf(" %u (%u) bytes @ %" PRIu64,
+                                               EXTRACT_32BITS(&dp[4]),
+                                               EXTRACT_32BITS(&dp[2]),
                                                EXTRACT_64BITS(&dp[0]));
                                if (vflag) {
                                        dp += 3;
@@ -960,7 +963,7 @@ parserep(register const struct sunrpc_msg *rp, register u_int length)
        /*
         * now we can check the ar_stat field
         */
-       astat = EXTRACT_32BITS(dp);
+       astat = (enum sunrpc_accept_stat) EXTRACT_32BITS(dp);
        switch (astat) {
 
        case SUNRPC_SUCCESS: