SNMP value formatting fixes

This commit is contained in:
Luca Deri 2025-11-06 20:11:57 +01:00
parent 648359686d
commit ade85f5995
2 changed files with 7 additions and 3 deletions

View file

@ -124,8 +124,7 @@ void SNMP::handle_async_response(struct snmp_pdu *pdu, const char *agent_ip) {
} break;
case ASN_OCTET_STR: {
// ntop->getTrace()->traceEvent(TRACE_WARNING, "%s = %s", rsp_oid,
// vp->val.string);
// ntop->getTrace()->traceEvent(TRACE_WARNING, "%s = %s", rsp_oid, vp->val.string);
char buf[512];
bool is_printable = true;
u_int i, len = min(sizeof(buf) - 1, vp->val_len);
@ -133,6 +132,7 @@ void SNMP::handle_async_response(struct snmp_pdu *pdu, const char *agent_ip) {
for (i = 0; i < len; i++) {
if((!isprint(vp->val.string[i]))
&& (!isspace(vp->val.string[i]))
&& (!ispunct(vp->val.string[i]))
// && (vp->val.string[i] < 191) /* Windows-1252 */
) {
is_printable = false;

View file

@ -592,7 +592,11 @@ int asn1_parse_string_type(ASN1Parser *parser, int *type, char **dest)
/* Check for IPv4 addresses */
u_int8_t v1 = (*dest)[0] & 0xFF, v2 = (*dest)[1] & 0xFF, v3 = (*dest)[2] & 0xFF, v4 = (*dest)[3] & 0xFF;
if(isalnum(v1) && isalnum(v2) && isalnum(v3) && isalnum(v4))
if((isalnum(v1) || ispunct(v1))
&& (isalnum(v2) || ispunct(v2))
&& (isalnum(v3) || ispunct(v3))
&& (isalnum(v4) || ispunct(v4))
)
/* this looks like a string */;
else {
char tmp[24];