diff options
author | 2020-03-11 06:53:42 +0000 | |
---|---|---|
committer | 2020-03-11 06:53:42 +0000 | |
commit | 56e88aeb3e9c1860e7c15ca167c98b38ecf79e69 (patch) | |
tree | 2081ef8cfe30293056fd4bd402b0040080717882 | |
parent | Variables 'nowait' amd 'flags' should have died in 2008 with r1.36's (diff) | |
download | wireguard-openbsd-56e88aeb3e9c1860e7c15ca167c98b38ecf79e69.tar.xz wireguard-openbsd-56e88aeb3e9c1860e7c15ca167c98b38ecf79e69.zip |
Make traphandler_parse also set vbinds for SNMPv1 traps.
This also prevents the access of an initialized pointer in
traphandler_fork_handler as found by jan@.
OK jan@
-rw-r--r-- | usr.sbin/snmpd/traphandler.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.sbin/snmpd/traphandler.c b/usr.sbin/snmpd/traphandler.c index fdb38297ea4..bf8218c1202 100644 --- a/usr.sbin/snmpd/traphandler.c +++ b/usr.sbin/snmpd/traphandler.c @@ -1,4 +1,4 @@ -/* $OpenBSD: traphandler.c,v 1.15 2019/10/24 12:39:27 tb Exp $ */ +/* $OpenBSD: traphandler.c,v 1.16 2020/03/11 06:53:42 martijn Exp $ */ /* * Copyright (c) 2014 Bret Stephen Lambert <blambert@openbsd.org> @@ -232,10 +232,13 @@ traphandler_parse(char *buf, size_t n, struct ber_element **req, switch (vers) { case SNMP_V1: - if (ober_scanf_elements(elm, "{oSddd", - trapoid, >ype, &etype, uptime) == -1) + if (ober_scanf_elements(elm, "{oSddde", + trapoid, >ype, &etype, uptime, &elm) == -1) goto done; traphandler_v1translate(trapoid, gtype, etype); + if (elm->be_type != BER_TYPE_SEQUENCE) + goto done; + *vbinds = elm->be_sub; break; case SNMP_V2: |