Not sure about this one, a quick glance at RFC 3411 suggests this
is just a binary string, so uint8_t is more appropriate.
Any snmp nerds around?
clang complained about this:
/usr/src/usr.sbin/snmpd/snmpd.c:349:47: warning: implicit conversion from 'int'
to 'char' changes value from 128 to -128 [-Wconstant-conversion]
env->sc_engineid[(env->sc_engineid_len)++] = SNMP_ENGINEID_FMT_EID;
~ ^~~~~~~~~~~~~~~~~~~~~
/usr/src/usr.sbin/snmpd/snmpd.h:80:31: note: expanded from macro
'SNMP_ENGINEID_FMT_EID'
^~~
diff --git snmpd/snmpd.h snmpd/snmpd.h
index 91186f23e42..ce1902bdc03 100644
--- snmpd/snmpd.h
+++ snmpd/snmpd.h
@@ -438,7 +438,7 @@ struct snmp_message {
long long sm_secmodel;
u_int32_t sm_engine_boots;
u_int32_t sm_engine_time;
- char sm_ctxengineid[SNMPD_MAXENGINEIDLEN];
+ uint8_t sm_ctxengineid[SNMPD_MAXENGINEIDLEN];
size_t sm_ctxengineid_len;
char sm_ctxname[SNMPD_MAXCONTEXNAMELEN+1];
@@ -574,7 +574,7 @@ struct snmpd {
char sc_rwcommunity[SNMPD_MAXCOMMUNITYLEN];
char sc_trcommunity[SNMPD_MAXCOMMUNITYLEN];
- char sc_engineid[SNMPD_MAXENGINEIDLEN];
+ uint8_t sc_engineid[SNMPD_MAXENGINEIDLEN];
size_t sc_engineid_len;
struct snmp_stats sc_stats;
--
I'm not entirely sure you are real.