diff options
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/bgpd/rde.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/usr.sbin/bgpd/rde.c b/usr.sbin/bgpd/rde.c index a32d4429ef6..95d1082ed31 100644 --- a/usr.sbin/bgpd/rde.c +++ b/usr.sbin/bgpd/rde.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde.c,v 1.172 2005/09/20 14:40:32 henning Exp $ */ +/* $OpenBSD: rde.c,v 1.173 2005/09/21 13:35:03 claudio Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -704,7 +704,8 @@ rde_update_dispatch(struct imsg *imsg) log_peer_warnx(&peer->conf, "bad AFI, IPv4 disabled"); rde_update_err(peer, ERR_UPDATE, ERR_UPD_OPTATTR, NULL, 0); - path_put(asp); + if (attrpath_len != 0) + path_put(asp); return (-1); } @@ -778,6 +779,11 @@ rde_update_dispatch(struct imsg *imsg) /* silently ignore unsupported multiprotocol AF */ break; } + + if ((asp->flags & ~F_ATTR_MP_UNREACH) == 0) { + path_put(asp); + return (0); + } } /* shift to NLRI information */ |