diff options
author | ngie <ngie@FreeBSD.org> | 2017-03-20 03:13:00 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2017-03-20 03:13:00 +0000 |
commit | 4f821a71fb3b1b8d368a75523042a668b645886a (patch) | |
tree | 4a3c5f4d2deb0d0157c9d9d4ff3bef67d88a517f | |
parent | a99c841378467b834a9c58f2df25dba96254cf56 (diff) | |
download | FreeBSD-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.c | 2 |
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); } |