Use the nd_printzp() function instead.
#define ND_ISGRAPH(c) ((c) > 0x20 && (c) <= 0x7E)
#define ND_TOASCII(c) ((c) & 0x7F)
-extern void safeputs(netdissect_options *, const u_char *, const u_int);
-
#if (defined(__i386__) || defined(_M_IX86) || defined(__X86__) || defined(__x86_64__) || defined(_M_X64)) || \
(defined(__arm__) || defined(_M_ARM) || defined(__aarch64__)) || \
(defined(__m68k__) && (!defined(__mc68000__) && !defined(__mc68010__))) || \
switch (md_nameformat) {
case CFM_CCM_MD_FORMAT_DNS:
case CFM_CCM_MD_FORMAT_CHAR:
- safeputs(ndo, md_name, md_namelength);
+ (void)nd_printzp(ndo, md_name, md_namelength, NULL);
break;
case CFM_CCM_MD_FORMAT_MAC:
ND_PRINT("\n\t MA Name: ");
switch (ma_nameformat) {
case CFM_CCM_MA_FORMAT_CHAR:
- safeputs(ndo, ma_name, ma_namelength);
+ (void)nd_printzp(ndo, ma_name, ma_namelength, NULL);
break;
/* FIXME add printers for those MA formats - hexdump for now */
case CFM_CHASSIS_ID_LOCAL:
case CFM_CHASSIS_ID_CHASSIS_COMPONENT:
case CFM_CHASSIS_ID_PORT_COMPONENT:
- safeputs(ndo, tptr + 1, chassis_id_length);
+ (void)nd_printzp(ndo, tptr + 1, chassis_id_length, NULL);
break;
default:
case EAP_TYPE_IDENTITY:
if (len - 5 > 0) {
ND_PRINT(", Identity: ");
- safeputs(ndo, tptr + 5, len - 5);
+ (void)nd_printzp(ndo, tptr + 5, len - 5, NULL);
}
break;
case EAP_TYPE_NOTIFICATION:
if (len - 5 > 0) {
ND_PRINT(", Notification: ");
- safeputs(ndo, tptr + 5, len - 5);
+ (void)nd_printzp(ndo, tptr + 5, len - 5, NULL);
}
break;
ND_PRINT(".");
if (length+lab_length > max_length) {
if (print)
- safeputs(ndo, cp+length, max_length-length);
+ (void)nd_printzp(ndo, cp+length, max_length-length, NULL);
break;
}
if (print)
- safeputs(ndo, cp+length, lab_length);
+ (void)nd_printzp(ndo, cp+length, lab_length, NULL);
length += lab_length;
}
if (print)
ND_PRINT(" Verdict: %u Fingerprint: %s Common Name: ",
EXTRACT_U_1(value),
format_256(value + 4));
- safeputs(ndo, value + 36, bodylen - 36);
+ (void)nd_printzp(ndo, value + 36, bodylen - 36, NULL);
}
break;
ND_PRINT(" M: %u P: %u H: %u L: %u User-agent: ",
M, P, H, L
);
- safeputs(ndo, value + 4, bodylen - 4);
+ (void)nd_printzp(ndo, value + 4, bodylen - 4, NULL);
}
break;
print_dns_label(ndo, value+1, bodylen-1, 1);
} else if (policy == 130) {
ND_PRINT("Opaque UTF-8: ");
- safeputs(ndo, value + 1, bodylen - 1);
+ (void)nd_printzp(ndo, value + 1, bodylen - 1, NULL);
} else if (policy == 131) {
if (bodylen != 1) {
ND_PRINT(" %s", istr);
);
if (l < 64) {
ND_PRINT("\"");
- safeputs(ndo, value + 17, l);
+ (void)nd_printzp(ndo, value + 17, l, NULL);
ND_PRINT("\"");
} else {
ND_PRINT("%s", istr);
return hexdump;
}
ND_PRINT("\n\t vlan name: ");
- safeputs(ndo, tptr + 7, sublen);
+ (void)nd_printzp(ndo, tptr + 7, sublen, NULL);
break;
case LLDP_PRIVATE_8021_SUBTYPE_PROTOCOL_IDENTITY:
if (tlv_len < 5) {
return hexdump;
}
ND_PRINT("\n\t protocol identity: ");
- safeputs(ndo, tptr + 5, sublen);
+ (void)nd_printzp(ndo, tptr + 5, sublen, NULL);
break;
case LLDP_PRIVATE_8021_SUBTYPE_CONGESTION_NOTIFICATION:
if(tlv_len<LLDP_PRIVATE_8021_SUBTYPE_CONGESTION_NOTIFICATION_LENGTH){
EXTRACT_U_1(tptr + 6));
/* Country code */
- safeputs(ndo, tptr + 7, 2);
+ (void)nd_printzp(ndo, tptr + 7, 2, NULL);
lci_len = lci_len-3;
tptr = tptr + 9;
return hexdump;
}
- safeputs(ndo, tptr, ca_len);
+ (void)nd_printzp(ndo, tptr, ca_len, NULL);
tptr += ca_len;
lci_len -= ca_len;
}
case LLDP_TIA_LOCATION_DATA_FORMAT_ECS_ELIN:
ND_PRINT("\n\t ECS ELIN id ");
- safeputs(ndo, tptr + 5, tlv_len - 5);
+ (void)nd_printzp(ndo, tptr + 5, tlv_len - 5, NULL);
break;
default:
case LLDP_PRIVATE_TIA_SUBTYPE_INVENTORY_ASSET_ID:
ND_PRINT("\n\t %s ",
tok2str(lldp_tia_inventory_values, "unknown", subtype));
- safeputs(ndo, tptr + 4, tlv_len - 4);
+ (void)nd_printzp(ndo, tptr + 4, tlv_len - 4, NULL);
break;
default:
}
if (oid_len) {
ND_PRINT("\n\t OID length %u", oid_len);
- safeputs(ndo, tptr + 1, oid_len);
+ (void)nd_printzp(ndo, tptr + 1, oid_len, NULL);
}
}
case LLDP_CHASSIS_CHASSIS_COMP_SUBTYPE:
case LLDP_CHASSIS_INTF_ALIAS_SUBTYPE:
case LLDP_CHASSIS_PORT_COMP_SUBTYPE:
- safeputs(ndo, tptr + 1, tlv_len - 1);
+ (void)nd_printzp(ndo, tptr + 1, tlv_len - 1, NULL);
break;
case LLDP_CHASSIS_NETWORK_ADDR_SUBTYPE:
case LLDP_PORT_AGENT_CIRC_ID_SUBTYPE:
case LLDP_PORT_INTF_ALIAS_SUBTYPE:
case LLDP_PORT_PORT_COMP_SUBTYPE:
- safeputs(ndo, tptr + 1, tlv_len - 1);
+ (void)nd_printzp(ndo, tptr + 1, tlv_len - 1, NULL);
break;
case LLDP_PORT_NETWORK_ADDR_SUBTYPE:
case LLDP_PORT_DESCR_TLV:
if (ndo->ndo_vflag) {
ND_PRINT(": ");
- safeputs(ndo, tptr, tlv_len);
+ (void)nd_printzp(ndo, tptr, tlv_len, NULL);
}
break;
* similar to the CDP printer.
*/
ND_PRINT(": ");
- safeputs(ndo, tptr, tlv_len);
+ (void)nd_printzp(ndo, tptr, tlv_len, NULL);
break;
case LLDP_SYSTEM_DESCR_TLV:
if (ndo->ndo_vflag) {
ND_PRINT("\n\t ");
- safeputs(ndo, tptr, tlv_len);
+ (void)nd_printzp(ndo, tptr, tlv_len, NULL);
}
break;
case OSPF_AUTH_SIMPLE:
ND_PRINT("\n\tSimple text password: ");
- safeputs(ndo, op->ospf_authdata, OSPF_AUTH_SIMPLE_LEN);
+ (void)nd_printzp(ndo, op->ospf_authdata, OSPF_AUTH_SIMPLE_LEN, NULL);
break;
case OSPF_AUTH_MD5:
case VQP_OBJ_VLAN_NAME:
case VQP_OBJ_VTP_DOMAIN:
case VQP_OBJ_ETHERNET_PKT:
- safeputs(ndo, tptr, vqp_obj_len);
+ (void)nd_printzp(ndo, tptr, vqp_obj_len, NULL);
break;
/* those objects have similar semantics - fall through */
case VQP_OBJ_MAC_ADDRESS:
}
}
-void
-safeputs(netdissect_options *ndo,
- const u_char *s, const u_int maxlen)
-{
- u_int idx = 0;
-
- while (idx < maxlen && EXTRACT_U_1(s)) {
- fn_print_char(ndo, EXTRACT_U_1(s));
- idx++;
- s++;
- }
-}
-
#if (defined(__i386__) || defined(_M_IX86) || defined(__X86__) || defined(__x86_64__) || defined(_M_X64)) || \
(defined(__arm__) || defined(_M_ARM) || defined(__aarch64__)) || \
(defined(__m68k__) && (!defined(__mc68000__) && !defined(__mc68010__))) || \