diff options
author | ngie <ngie@FreeBSD.org> | 2016-12-31 00:00:12 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2016-12-31 00:00:12 +0000 |
commit | 6c427311b349e3a95ac0d9865138667a1d448677 (patch) | |
tree | 8e430cf1b18c44464c39d90defb139e80d9f82c3 /contrib/bsnmp | |
parent | e11be50095cebf28ba49ecaa2053a220eca598a2 (diff) | |
download | FreeBSD-src-6c427311b349e3a95ac0d9865138667a1d448677.zip FreeBSD-src-6c427311b349e3a95ac0d9865138667a1d448677.tar.gz |
MFC r310455:
Clarify failure in snmp_output(..) with call to snmp_pdu_decode
- Explicitly test snmp_pdu_encode against SNMP_CODE_OK instead of assuming
any non-zero value is bad.
- Print out the code before calling abort() to give the end-user something
actionable to debug without having to recompile the binary, since the
core might not have these details.
Diffstat (limited to 'contrib/bsnmp')
-rw-r--r-- | contrib/bsnmp/snmpd/main.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/bsnmp/snmpd/main.c b/contrib/bsnmp/snmpd/main.c index ea87127..cd9f0a5 100644 --- a/contrib/bsnmp/snmpd/main.c +++ b/contrib/bsnmp/snmpd/main.c @@ -282,12 +282,13 @@ snmp_output(struct snmp_pdu *pdu, u_char *sndbuf, size_t *sndlen, const char *dest) { struct asn_buf resp_b; + enum snmp_code code; resp_b.asn_ptr = sndbuf; resp_b.asn_len = snmpd.txbuf; - if (snmp_pdu_encode(pdu, &resp_b) != 0) { - syslog(LOG_ERR, "cannot encode message"); + if ((code = snmp_pdu_encode(pdu, &resp_b)) != SNMP_CODE_OK) { + syslog(LOG_ERR, "cannot encode message (code=%d)", code); abort(); } if (debug.dump_pdus) { |