bgpd: fix AS4_PATH attr flag check (BZ#676)
AS_PATH is a well-known, transitive path attribute and cannot be flagged
as "Partial". This is what commit
77a20b8af32c926176f8492a086d9e4ec670496b implemented, but it did not
account, that bgp_attr_aspath() is also used to process AS4_PATH, which
is an optional, transitive path attribute and as such may be flagged as
"Partial". This change justfies the test condition.
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c
index 4967e09..2205e26 100644
--- a/bgpd/bgp_attr.c
+++ b/bgpd/bgp_attr.c
@@ -826,7 +826,7 @@
total = length + (CHECK_FLAG (flag, BGP_ATTR_FLAG_EXTLEN) ? 4 : 3);
/* Check the attribute flags */
- if (CHECK_FLAG (flag, BGP_ATTR_FLAG_PARTIAL))
+ if (!as4_path && CHECK_FLAG (flag, BGP_ATTR_FLAG_PARTIAL))
{
zlog (peer->log, LOG_ERR,
"AS_PATH attribute must not be flagged as \"partial\" (%u)", flag);