]> The Tcpdump Group git mirrors - tcpdump/commitdiff
ip6r0_reserved is an array of octets; extract the value from it.
authorGuy Harris <[email protected]>
Tue, 14 Mar 2017 19:22:28 +0000 (12:22 -0700)
committerDenis Ovsienko <[email protected]>
Wed, 13 Sep 2017 11:25:44 +0000 (12:25 +0100)
dp0->ip6r0_reserved evaluates to a pointer to the first element of the
array, which is always non-null, so it doesn't test whether the *value*
of the field is non-zero.  Call EXTRACT_32BITS() on it to check whether
the value is zero.

print-rt6.c

index 3454adf70f54704f72a909ca8f78e4b2490c0d39..78a6a57be2832766d9b778a233b9cd8237ad04bb 100644 (file)
@@ -62,7 +62,7 @@ rt6_print(netdissect_options *ndo, register const u_char *bp, const u_char *bp2
                dp0 = (const struct ip6_rthdr0 *)dp;
 
                ND_TCHECK(dp0->ip6r0_reserved);
-               if (dp0->ip6r0_reserved || ndo->ndo_vflag) {
+               if (EXTRACT_32BITS(dp0->ip6r0_reserved) || ndo->ndo_vflag) {
                        ND_PRINT((ndo, ", rsv=0x%0x",
                            EXTRACT_32BITS(&dp0->ip6r0_reserved)));
                }