From: paul Date: Mon, 10 Nov 2003 23:56:29 +0000 (+0000) Subject: 2003-11-10 Claus Endres X-Git-Tag: frr-2.0-rc1~3854 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=b5f2c1267ef8c7694bb96aff748a866775ab1cbe;p=matthieu%2Ffrr.git 2003-11-10 Claus Endres * ospfd/ospf_interface.c: (ospf_if_table_lookup) grab reference to rn->info /before/ calling route_unlock_node() as some systems may deliberately poison freed memory, eg FreeBSD 5.1. see [quagga-dev 417]. --- diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c index 2519ec9ce5..2afe19ec3f 100644 --- a/ospfd/ospf_interface.c +++ b/ospfd/ospf_interface.c @@ -131,13 +131,15 @@ ospf_if_table_lookup (struct interface *ifp, struct prefix *prefix) { struct prefix p; struct route_node *rn; + struct ospf_interface *rninfo; p = *prefix; rn = route_node_get (IF_OIFS (ifp), &p); /* route_node_get implicitely locks */ + rninfo = (struct ospf_interface *) rn->info; route_unlock_node (rn); - return (struct ospf_interface *) rn->info; + return rninfo; } void