legacy sending of traps in snmpd

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

legacy sending of traps in snmpd

Gerhard Roth-2
Hi,

any initialization of the form

        struct ber_oid trapoid = OID(MIB_snmpTrapOID);

requires a smi_scalar_oidlen() afterwards to set 'bo_n' to the correct
length.

The old ber_oid_cmp() from usr.sbin/snmpd/ber.c used to iterate over
all elements of 'bo_id' and not just the first 'bo_n' ones. So calling
smi_scalar_oidlen() wasn't a requirement here. However, with the new
ober_oid_cmp() it is, since this version only iterates up to 'bo_n'
array elements.

Gerhard



Index: usr.sbin/snmpd/trap.c
===================================================================
RCS file: /cvs/src/usr.sbin/snmpd/trap.c,v
retrieving revision 1.33
diff -u -p -u -p -r1.33 trap.c
--- usr.sbin/snmpd/trap.c 24 Oct 2019 12:39:27 -0000 1.33
+++ usr.sbin/snmpd/trap.c 9 Dec 2019 13:32:21 -0000
@@ -83,6 +83,8 @@ trap_agentx(struct agentx_handle *h, str
  goto done;
  }
 
+ smi_scalar_oidlen(&uptime);
+ smi_scalar_oidlen(&trapoid);
  while (pdu->datalen > sizeof(struct agentx_hdr)) {
  x++;