aboutsummaryrefslogtreecommitdiff
path: root/contrib/bsnmp
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2017-03-13 18:01:01 +0000
committerEnji Cooper <ngie@FreeBSD.org>2017-03-13 18:01:01 +0000
commitf321675a98df1820a955e1bde2f090b24fddb6f1 (patch)
tree8522240b749421efa4115b17c3ea613550716385 /contrib/bsnmp
parentda1d1cd3fe68f07e9e91f7531a5ff234377b0256 (diff)
downloadsrc-f321675a98df1820a955e1bde2f090b24fddb6f1.tar.gz
src-f321675a98df1820a955e1bde2f090b24fddb6f1.zip
bsnmpd: fix segfault when trans_insert_port(..) is called with multiple
out of order addresses Move `port->transport` initialization before the TAILQ_FOREACH(..) loop to ensure that the value is properly initialized before it's inserted into the TAILQ. MFC after: 1 week PR: 217760 Submitted by: eugen Sponsored by: Dell EMC Isilon
Notes
Notes: svn path=/head/; revision=315206
Diffstat (limited to 'contrib/bsnmp')
-rw-r--r--contrib/bsnmp/snmpd/main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/bsnmp/snmpd/main.c b/contrib/bsnmp/snmpd/main.c
index a2053e889926..70378331ee01 100644
--- a/contrib/bsnmp/snmpd/main.c
+++ b/contrib/bsnmp/snmpd/main.c
@@ -765,13 +765,13 @@ trans_insert_port(struct transport *t, struct tport *port)
{
struct tport *p;
+ port->transport = t;
TAILQ_FOREACH(p, &t->table, link) {
if (asn_compare_oid(&p->index, &port->index) > 0) {
TAILQ_INSERT_BEFORE(p, port, link);
return;
}
}
- port->transport = t;
TAILQ_INSERT_TAIL(&t->table, port, link);
}