Some fun in trying to work out what was broken with gcc-4.1 to
trigger the following warning when gcc-4.5 was silent: nd6_rtr.c: In function 'nd6_ra_input': nd6_rtr.c:788: warning: 'ext' may be used uninitialized in this function Eventually determined that it was not unreasonable for gcc-4.1 to bleat in this case as there is a nasty 'goto insert' which could indeed have resulted in an uninitialised variable use. Yay gcc 4.1.
This commit is contained in:
parent
5659783547
commit
e14333f8c1
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: nd6_rtr.c,v 1.83 2012/06/23 03:14:04 christos Exp $ */
|
/* $NetBSD: nd6_rtr.c,v 1.84 2012/06/25 17:25:29 abs Exp $ */
|
||||||
/* $KAME: nd6_rtr.c,v 1.95 2001/02/07 08:09:47 itojun Exp $ */
|
/* $KAME: nd6_rtr.c,v 1.95 2001/02/07 08:09:47 itojun Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: nd6_rtr.c,v 1.83 2012/06/23 03:14:04 christos Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: nd6_rtr.c,v 1.84 2012/06/25 17:25:29 abs Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
|
@ -744,6 +744,7 @@ static struct nd_defrouter *
|
||||||
defrtrlist_update(struct nd_defrouter *new)
|
defrtrlist_update(struct nd_defrouter *new)
|
||||||
{
|
{
|
||||||
struct nd_defrouter *dr, *n;
|
struct nd_defrouter *dr, *n;
|
||||||
|
struct in6_ifextra *ext = new->ifp->if_afdata[AF_INET6];
|
||||||
int s = splsoftnet();
|
int s = splsoftnet();
|
||||||
|
|
||||||
if ((dr = defrouter_lookup(&new->rtaddr, new->ifp)) != NULL) {
|
if ((dr = defrouter_lookup(&new->rtaddr, new->ifp)) != NULL) {
|
||||||
|
@ -785,7 +786,6 @@ defrtrlist_update(struct nd_defrouter *new)
|
||||||
return (dr);
|
return (dr);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct in6_ifextra *ext = new->ifp->if_afdata[AF_INET6];
|
|
||||||
if (ip6_maxifdefrouters >= 0 &&
|
if (ip6_maxifdefrouters >= 0 &&
|
||||||
ext->ndefrouters >= ip6_maxifdefrouters) {
|
ext->ndefrouters >= ip6_maxifdefrouters) {
|
||||||
splx(s);
|
splx(s);
|
||||||
|
|
Loading…
Reference in New Issue