... and a Clang warning.
The warning was:
./print-udp.c:574:104: warning: address of array
'ip6->ip6_ctlun.ip6_un1.ip6_un1_plen' will always evaluate to 'true'
[-Wpointer-bool-conversion]
...& 0xf0) >> 4) == 6 && ip6->ip6_ctlun.ip6_un1.ip6_un1_plen) {
~~ ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
ND_PRINT("[udp sum ok] ");
}
}
- else if (IP_V(ip) == 6 && ip6->ip6_plen) {
+ else if (IP_V(ip) == 6 && GET_BE_U_2(ip6->ip6_plen)) {
/* for IPv6, UDP checksum is mandatory */
if (ND_TTEST_LEN(cp, length)) {
sum = udp6_cksum(ndo, ip6, up, length + sizeof(struct udphdr));