summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2017-03-20 03:13:00 +0000
committerngie <ngie@FreeBSD.org>2017-03-20 03:13:00 +0000
commit4f821a71fb3b1b8d368a75523042a668b645886a (patch)
tree4a3c5f4d2deb0d0157c9d9d4ff3bef67d88a517f
parenta99c841378467b834a9c58f2df25dba96254cf56 (diff)
downloadFreeBSD-src-4f821a71fb3b1b8d368a75523042a668b645886a.zip
FreeBSD-src-4f821a71fb3b1b8d368a75523042a668b645886a.tar.gz
MFC r315206:
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. PR: 217760
-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 a2053e8..7037833 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);
}
OpenPOWER on IntegriCloud