diff options
author | Enji Cooper <ngie@FreeBSD.org> | 2017-03-13 18:01:01 +0000 |
---|---|---|
committer | Enji Cooper <ngie@FreeBSD.org> | 2017-03-13 18:01:01 +0000 |
commit | f321675a98df1820a955e1bde2f090b24fddb6f1 (patch) | |
tree | 8522240b749421efa4115b17c3ea613550716385 /contrib/bsnmp | |
parent | da1d1cd3fe68f07e9e91f7531a5ff234377b0256 (diff) | |
download | src-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.c | 2 |
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); } |