mirror of
https://codeberg.org/1414codeforge/ubgpsuite.git
synced 2025-02-16 11:40:55 +01:00
[bgp/attribute] Make sure EXTENDED attribute bit is off when clearing MP_UNREACH_NLRI during RIB rebuild
This commit is contained in:
parent
dd57ccac53
commit
3ab2e69bb2
@ -335,7 +335,6 @@ Judgement Bgp_RebuildMsgFromRib(const Prefix *nlri,
|
|||||||
}
|
}
|
||||||
if (flags & BGPF_CLEARUNREACH) {
|
if (flags & BGPF_CLEARUNREACH) {
|
||||||
// Keep the attribute, but clear its contents
|
// Keep the attribute, but clear its contents
|
||||||
Uint8 flags = attr->flags;
|
|
||||||
const Bgpmpfam *srcFam = Bgp_GetMpFamily(attr);
|
const Bgpmpfam *srcFam = Bgp_GetMpFamily(attr);
|
||||||
if (!srcFam)
|
if (!srcFam)
|
||||||
goto error; // error already set
|
goto error; // error already set
|
||||||
@ -344,7 +343,7 @@ Judgement Bgp_RebuildMsgFromRib(const Prefix *nlri,
|
|||||||
attrSiz = 3 + 2 + 1;
|
attrSiz = 3 + 2 + 1;
|
||||||
|
|
||||||
Bgpattr *mpUnreach = (Bgpattr *) alloca(attrSiz);
|
Bgpattr *mpUnreach = (Bgpattr *) alloca(attrSiz);
|
||||||
mpUnreach->flags = flags;
|
mpUnreach->flags = attr->flags & ~BGP_ATTR_EXTENDED;
|
||||||
mpUnreach->code = BGP_ATTR_MP_UNREACH_NLRI;
|
mpUnreach->code = BGP_ATTR_MP_UNREACH_NLRI;
|
||||||
mpUnreach->len = 3;
|
mpUnreach->len = 3;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user