X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/1a90fd99d279d63242419a30ba3e0720872bff75..1a04b92e365f5ed01ca38619b41bcc4fc9cbd63c:/print-lldp.c diff --git a/print-lldp.c b/print-lldp.c index 1d829ac8..f4752d49 100644 --- a/print-lldp.c +++ b/print-lldp.c @@ -682,8 +682,8 @@ lldp_private_8021_print(netdissect_options *ndo, } ND_PRINT((ndo, "\n\t port and protocol vlan id (PPVID): %u, flags [%s] (0x%02x)", EXTRACT_BE_U_2(tptr + 5), - bittok2str(lldp_8021_port_protocol_id_values, "none", EXTRACT_U_1((tptr + 4))), - *(tptr + 4))); + bittok2str(lldp_8021_port_protocol_id_values, "none", EXTRACT_U_1(tptr + 4)), + EXTRACT_U_1(tptr + 4))); break; case LLDP_PRIVATE_8021_SUBTYPE_VLAN_NAME: if (tlv_len < 6) { @@ -752,7 +752,7 @@ lldp_private_8021_print(netdissect_options *ndo, if(tlv_len> 2), lldp_extract_latlon(tptr + 5))); + (EXTRACT_U_1(tptr + 5) >> 2), lldp_extract_latlon(tptr + 5))); ND_PRINT((ndo, "\n\t Longitude resolution %u, longitude value %" PRIu64, - (*(tptr + 10) >> 2), lldp_extract_latlon(tptr + 10))); + (EXTRACT_U_1(tptr + 10) >> 2), lldp_extract_latlon(tptr + 10))); ND_PRINT((ndo, "\n\t Altitude type %s (%u)", - tok2str(lldp_tia_location_altitude_type_values, "unknown",EXTRACT_U_1((tptr + 15)) >> 4), + tok2str(lldp_tia_location_altitude_type_values, "unknown",EXTRACT_U_1(tptr + 15) >> 4), (EXTRACT_U_1(tptr + 15) >> 4))); ND_PRINT((ndo, "\n\t Altitude resolution %u, altitude value 0x%x", (EXTRACT_BE_U_2(tptr + 15)>>6)&0x3f, ((EXTRACT_BE_U_4(tptr + 16) & 0x3fffffff)))); ND_PRINT((ndo, "\n\t Datum %s (0x%02x)", - tok2str(lldp_tia_location_datum_type_values, "unknown", EXTRACT_U_1((tptr + 20))), - *(tptr + 20))); + tok2str(lldp_tia_location_datum_type_values, "unknown", EXTRACT_U_1(tptr + 20)), + EXTRACT_U_1(tptr + 20))); break; case LLDP_TIA_LOCATION_DATA_FORMAT_CIVIC_ADDRESS: @@ -1060,8 +1060,8 @@ lldp_private_tia_print(netdissect_options *ndo, } ND_PRINT((ndo, "\n\t LCI length %u, LCI what %s (0x%02x), Country-code ", lci_len, - tok2str(lldp_tia_location_lci_what_values, "unknown", EXTRACT_U_1((tptr + 6))), - *(tptr + 6))); + tok2str(lldp_tia_location_lci_what_values, "unknown", EXTRACT_U_1(tptr + 6)), + EXTRACT_U_1(tptr + 6))); /* Country code */ safeputs(ndo, tptr + 7, 2); @@ -1074,7 +1074,7 @@ lldp_private_tia_print(netdissect_options *ndo, if (lci_len < 2) { return hexdump; } - ca_type = *(tptr); + ca_type = EXTRACT_U_1(tptr); ca_len = EXTRACT_U_1(tptr + 1); tptr += 2; @@ -1114,12 +1114,12 @@ lldp_private_tia_print(netdissect_options *ndo, return hexdump; } ND_PRINT((ndo, "\n\t Power type [%s]", - (*(tptr + 4) & 0xC0 >> 6) ? "PD device" : "PSE device")); + (EXTRACT_U_1(tptr + 4) & 0xC0 >> 6) ? "PD device" : "PSE device")); ND_PRINT((ndo, ", Power source [%s]", tok2str(lldp_tia_power_source_values, "none", (EXTRACT_U_1((tptr + 4)) & 0x30) >> 4))); ND_PRINT((ndo, "\n\t Power priority [%s] (0x%02x)", - tok2str(lldp_tia_power_priority_values, "none", EXTRACT_U_1((tptr + 4)) & 0x0f), - (EXTRACT_U_1(tptr + 4) & 0x0f))); + tok2str(lldp_tia_power_priority_values, "none", EXTRACT_U_1(tptr + 4) & 0x0f), + EXTRACT_U_1(tptr + 4) & 0x0f)); power_val = EXTRACT_BE_U_2(tptr + 5); if (power_val < LLDP_TIA_POWER_VAL_MAX) { ND_PRINT((ndo, ", Power %.1f Watts", ((float)power_val) / 10)); @@ -1180,7 +1180,7 @@ lldp_private_dcbx_print(netdissect_options *ndo, while (tlen >= sizeof(tlv)) { - ND_TCHECK2(*tptr, sizeof(tlv)); + ND_TCHECK_LEN(tptr, sizeof(tlv)); tlv = EXTRACT_BE_U_2(tptr); @@ -1196,7 +1196,7 @@ lldp_private_dcbx_print(netdissect_options *ndo, break; } - ND_TCHECK2(*tptr, tlv_len); + ND_TCHECK_LEN(tptr, tlv_len); if (tlen < tlv_len) { goto trunc; } @@ -1209,8 +1209,8 @@ lldp_private_dcbx_print(netdissect_options *ndo, } ND_PRINT((ndo, "\n\t Control - Protocol Control (type 0x%x, length %d)", LLDP_DCBX_CONTROL_TLV, tlv_len)); - ND_PRINT((ndo, "\n\t Oper_Version: %d", *tptr)); - ND_PRINT((ndo, "\n\t Max_Version: %d", *(tptr + 1))); + ND_PRINT((ndo, "\n\t Oper_Version: %d", EXTRACT_U_1(tptr))); + ND_PRINT((ndo, "\n\t Max_Version: %d", EXTRACT_U_1(tptr + 1))); ND_PRINT((ndo, "\n\t Sequence Number: %d", EXTRACT_BE_U_4(tptr + 2))); ND_PRINT((ndo, "\n\t Acknowledgement Number: %d", EXTRACT_BE_U_4(tptr + 6))); @@ -1221,14 +1221,14 @@ lldp_private_dcbx_print(netdissect_options *ndo, } ND_PRINT((ndo, "\n\t Feature - Priority Group (type 0x%x, length %d)", LLDP_DCBX_PRIORITY_GROUPS_TLV, tlv_len)); - ND_PRINT((ndo, "\n\t Oper_Version: %d", *tptr)); - ND_PRINT((ndo, "\n\t Max_Version: %d", *(tptr + 1))); - ND_PRINT((ndo, "\n\t Info block(0x%02X): ", *(tptr + 2))); + ND_PRINT((ndo, "\n\t Oper_Version: %d", EXTRACT_U_1(tptr))); + ND_PRINT((ndo, "\n\t Max_Version: %d", EXTRACT_U_1(tptr + 1))); + ND_PRINT((ndo, "\n\t Info block(0x%02X): ", EXTRACT_U_1(tptr + 2))); tval = EXTRACT_U_1(tptr + 2); ND_PRINT((ndo, "Enable bit: %d, Willing bit: %d, Error Bit: %d", (tval & 0x80) ? 1 : 0, (tval & 0x40) ? 1 : 0, (tval & 0x20) ? 1 : 0)); - ND_PRINT((ndo, "\n\t SubType: %d", *(tptr + 3))); + ND_PRINT((ndo, "\n\t SubType: %d", EXTRACT_U_1(tptr + 3))); ND_PRINT((ndo, "\n\t Priority Allocation")); /* @@ -1242,8 +1242,8 @@ lldp_private_dcbx_print(netdissect_options *ndo, } ND_PRINT((ndo, "\n\t Priority Group Allocation")); for (i = 0; i <= 7; i++) - ND_PRINT((ndo, "\n\t Pg percentage[%d]: %d", i, *(tptr + 8 + i))); - ND_PRINT((ndo, "\n\t NumTCsSupported: %d", *(tptr + 8 + 8))); + ND_PRINT((ndo, "\n\t Pg percentage[%d]: %d", i, EXTRACT_U_1(tptr + 8 + i))); + ND_PRINT((ndo, "\n\t NumTCsSupported: %d", EXTRACT_U_1(tptr + 8 + 8))); break; case LLDP_DCBX_PRIORITY_FLOW_CONTROL_TLV: if (tlv_len < 6) { @@ -1252,20 +1252,20 @@ lldp_private_dcbx_print(netdissect_options *ndo, ND_PRINT((ndo, "\n\t Feature - Priority Flow Control")); ND_PRINT((ndo, " (type 0x%x, length %d)", LLDP_DCBX_PRIORITY_FLOW_CONTROL_TLV, tlv_len)); - ND_PRINT((ndo, "\n\t Oper_Version: %d", *tptr)); - ND_PRINT((ndo, "\n\t Max_Version: %d", *(tptr + 1))); - ND_PRINT((ndo, "\n\t Info block(0x%02X): ", *(tptr + 2))); + ND_PRINT((ndo, "\n\t Oper_Version: %d", EXTRACT_U_1(tptr))); + ND_PRINT((ndo, "\n\t Max_Version: %d", EXTRACT_U_1(tptr + 1))); + ND_PRINT((ndo, "\n\t Info block(0x%02X): ", EXTRACT_U_1(tptr + 2))); tval = EXTRACT_U_1(tptr + 2); ND_PRINT((ndo, "Enable bit: %d, Willing bit: %d, Error Bit: %d", (tval & 0x80) ? 1 : 0, (tval & 0x40) ? 1 : 0, (tval & 0x20) ? 1 : 0)); - ND_PRINT((ndo, "\n\t SubType: %d", *(tptr + 3))); + ND_PRINT((ndo, "\n\t SubType: %d", EXTRACT_U_1(tptr + 3))); tval = EXTRACT_U_1(tptr + 4); - ND_PRINT((ndo, "\n\t PFC Config (0x%02X)", *(tptr + 4))); + ND_PRINT((ndo, "\n\t PFC Config (0x%02X)", EXTRACT_U_1(tptr + 4))); for (i = 0; i <= 7; i++) ND_PRINT((ndo, "\n\t Priority Bit %d: %s", i, (tval & (1 << i)) ? "Enabled" : "Disabled")); - ND_PRINT((ndo, "\n\t NumTCPFCSupported: %d", *(tptr + 5))); + ND_PRINT((ndo, "\n\t NumTCPFCSupported: %d", EXTRACT_U_1(tptr + 5))); break; case LLDP_DCBX_APPLICATION_TLV: if (tlv_len < 4) { @@ -1273,14 +1273,14 @@ lldp_private_dcbx_print(netdissect_options *ndo, } ND_PRINT((ndo, "\n\t Feature - Application (type 0x%x, length %d)", LLDP_DCBX_APPLICATION_TLV, tlv_len)); - ND_PRINT((ndo, "\n\t Oper_Version: %d", *tptr)); - ND_PRINT((ndo, "\n\t Max_Version: %d", *(tptr + 1))); - ND_PRINT((ndo, "\n\t Info block(0x%02X): ", *(tptr + 2))); + ND_PRINT((ndo, "\n\t Oper_Version: %d", EXTRACT_U_1(tptr))); + ND_PRINT((ndo, "\n\t Max_Version: %d", EXTRACT_U_1(tptr + 1))); + ND_PRINT((ndo, "\n\t Info block(0x%02X): ", EXTRACT_U_1(tptr + 2))); tval = EXTRACT_U_1(tptr + 2); ND_PRINT((ndo, "Enable bit: %d, Willing bit: %d, Error Bit: %d", (tval & 0x80) ? 1 : 0, (tval & 0x40) ? 1 : 0, (tval & 0x20) ? 1 : 0)); - ND_PRINT((ndo, "\n\t SubType: %d", *(tptr + 3))); + ND_PRINT((ndo, "\n\t SubType: %d", EXTRACT_U_1(tptr + 3))); tval = tlv_len - 4; mptr = tptr + 4; while (tval >= 6) { @@ -1292,7 +1292,7 @@ lldp_private_dcbx_print(netdissect_options *ndo, (uval >> 22), (uval >> 22) ? "Socket Number" : "L2 EtherType")); ND_PRINT((ndo, "\n\t OUI: 0x%06x", uval & 0x3fffff)); - ND_PRINT((ndo, "\n\t User Priority Map: 0x%02x", *(mptr + 5))); + ND_PRINT((ndo, "\n\t User Priority Map: 0x%02x", EXTRACT_U_1(mptr + 5))); tval = tval - 6; mptr = mptr + 6; } @@ -1325,7 +1325,7 @@ lldp_network_addr_print(netdissect_options *ndo, const u_char *tptr, u_int len) if (len < 1) return NULL; len--; - af = *tptr; + af = EXTRACT_U_1(tptr); switch (af) { case AFNUM_INET: if (len < 4) @@ -1396,7 +1396,7 @@ lldp_mgmt_addr_tlv_print(netdissect_options *ndo, return 0; } - intf_num_subtype = *tptr; + intf_num_subtype = EXTRACT_U_1(tptr); ND_PRINT((ndo, "\n\t %s Interface Numbering (%u): %u", tok2str(lldp_intf_numb_subtype_values, "Unknown", intf_num_subtype), intf_num_subtype, @@ -1409,7 +1409,7 @@ lldp_mgmt_addr_tlv_print(netdissect_options *ndo, * The OID is optional. */ if (tlen) { - oid_len = *tptr; + oid_len = EXTRACT_U_1(tptr); if (tlen < 1U + oid_len) { return 0; @@ -1425,7 +1425,7 @@ lldp_mgmt_addr_tlv_print(netdissect_options *ndo, void lldp_print(netdissect_options *ndo, - register const u_char *pptr, register u_int len) + const u_char *pptr, u_int len) { uint8_t subtype; uint16_t tlv, cap, ena_cap; @@ -1440,7 +1440,7 @@ lldp_print(netdissect_options *ndo, while (tlen >= sizeof(tlv)) { - ND_TCHECK2(*tptr, sizeof(tlv)); + ND_TCHECK_LEN(tptr, sizeof(tlv)); tlv = EXTRACT_BE_U_2(tptr); @@ -1462,7 +1462,7 @@ lldp_print(netdissect_options *ndo, break; } - ND_TCHECK2(*tptr, tlv_len); + ND_TCHECK_LEN(tptr, tlv_len); if (tlen < tlv_len) { goto trunc; } @@ -1474,7 +1474,7 @@ lldp_print(netdissect_options *ndo, if (tlv_len < 2) { goto trunc; } - subtype = *tptr; + subtype = EXTRACT_U_1(tptr); ND_PRINT((ndo, "\n\t Subtype %s (%u): ", tok2str(lldp_chassis_subtype_values, "Unknown", subtype), subtype)); @@ -1515,7 +1515,7 @@ lldp_print(netdissect_options *ndo, if (tlv_len < 2) { goto trunc; } - subtype = *tptr; + subtype = EXTRACT_U_1(tptr); ND_PRINT((ndo, "\n\t Subtype %s (%u): ", tok2str(lldp_port_subtype_values, "Unknown", subtype), subtype));