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
This commit is contained in:
Enji Cooper 2017-03-13 18:01:01 +00:00
parent da1d1cd3fe
commit f321675a98

View File

@ -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);
}