summaryrefslogtreecommitdiff
path: root/print-dhcp6.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2020-01-19 19:55:38 -0800
committerGuy Harris <guy@alum.mit.edu>2020-01-19 19:55:38 -0800
commit306c2a0384af923a73bf234f3c8bc186ceff0b58 (patch)
tree0598390b879d6e9a76ff3b906989a920222d2654 /print-dhcp6.c
parent2cd0a90c24ccf01ad9a034d7d5a6a651c82a4785 (diff)
downloadtcpdump-306c2a0384af923a73bf234f3c8bc186ceff0b58.tar.gz
More bounds checking when fetching addresses and converting to strings.
Replace more calls to ipaddr_string()/ip6addr_string() with calls to GET_IPADDR_STRING()/GET_IP6ADDR_STRING() macros performing bounds checking. Add similar bounds-checking inline functions and macros to wrap linkaddr_string(), etheraddr_string(), and isonsap_string() and convert calls to them to use the macros as well. Shuffle the inline functions in addrtoname.h around a bit, so that the inline functions, external declarations, and macros are all in the same order.
Diffstat (limited to 'print-dhcp6.c')
-rw-r--r--print-dhcp6.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/print-dhcp6.c b/print-dhcp6.c
index 590b9c50..0b40af81 100644
--- a/print-dhcp6.c
+++ b/print-dhcp6.c
@@ -371,7 +371,7 @@ dhcp6opt_print(netdissect_options *ndo,
break;
}
tp = (const u_char *)(dh6o + 1);
- ND_PRINT(" %s", ip6addr_string(ndo, tp));
+ ND_PRINT(" %s", GET_IP6ADDR_STRING(tp));
ND_PRINT(" pltime:%u vltime:%u",
GET_BE_U_4(tp + 16),
GET_BE_U_4(tp + 20));
@@ -561,7 +561,7 @@ dhcp6opt_print(netdissect_options *ndo,
}
tp = (const u_char *)(dh6o + 1);
for (i = 0; i < optlen; i += 16)
- ND_PRINT(" %s", ip6addr_string(ndo, tp + i));
+ ND_PRINT(" %s", GET_IP6ADDR_STRING(tp + i));
ND_PRINT(")");
break;
case DH6OPT_SIP_SERVER_D:
@@ -618,7 +618,7 @@ dhcp6opt_print(netdissect_options *ndo,
break;
}
tp = (const u_char *)(dh6o + 1);
- ND_PRINT(" %s/%u", ip6addr_string(ndo, tp + 9),
+ ND_PRINT(" %s/%u", GET_IP6ADDR_STRING(tp + 9),
GET_U_1(tp + 8));
ND_PRINT(" pltime:%u vltime:%u",
GET_BE_U_4(tp),
@@ -670,7 +670,7 @@ dhcp6opt_print(netdissect_options *ndo,
ND_PRINT(" type_%u", dh6_lq_query_type);
break;
}
- ND_PRINT(" %s", ip6addr_string(ndo, tp + 1));
+ ND_PRINT(" %s", GET_IP6ADDR_STRING(tp + 1));
if (optlen > 17) {
/* there are query-options */
dhcp6opt_print(ndo, tp + 17, tp + optlen);
@@ -691,7 +691,7 @@ dhcp6opt_print(netdissect_options *ndo,
break;
}
tp = (const u_char *)(dh6o + 1);
- ND_PRINT(" %s ", ip6addr_string(ndo, tp));
+ ND_PRINT(" %s ", GET_IP6ADDR_STRING(tp));
/*
* Print hex dump first 10 characters.
*/
@@ -720,7 +720,7 @@ dhcp6opt_print(netdissect_options *ndo,
ND_PRINT(" ?");
break;
}
- ND_PRINT(" %s", ip6addr_string(ndo, tp));
+ ND_PRINT(" %s", GET_IP6ADDR_STRING(tp));
break;
case DH6OPT_NTP_SUBOPTION_SRV_FQDN:
ND_PRINT(" ");
@@ -828,9 +828,9 @@ dhcp6_print(netdissect_options *ndo,
} else { /* relay messages */
ND_TCHECK_16(dh6relay->dh6relay_peeraddr);
- ND_PRINT("linkaddr=%s", ip6addr_string(ndo, dh6relay->dh6relay_linkaddr));
+ ND_PRINT("linkaddr=%s", GET_IP6ADDR_STRING(dh6relay->dh6relay_linkaddr));
- ND_PRINT(" peeraddr=%s", ip6addr_string(ndo, dh6relay->dh6relay_peeraddr));
+ ND_PRINT(" peeraddr=%s", GET_IP6ADDR_STRING(dh6relay->dh6relay_peeraddr));
dhcp6opt_print(ndo, (const u_char *)(dh6relay + 1), ep);
}