mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 13:06:51 +00:00
bgpd: Fix the order of NULL check and ZAPI decode
When BGP receives an SRV6_LOCATOR_ADD message from zebra, it calls the
`bgp_zebra_process_srv6_locator_add()` function to process the message.
`bgp_zebra_process_srv6_locator_add()` decodes the message first, and
then if the pointer to the default BGP instance is NULL (i.e. the
default BGP instance is not configured yet), it returns early without
doing anything and without using the decoded message information.
This commit fixes the order of the operations executed by
`bgp_zebra_process_srv6_locator_add()`. We first ensure that the default
BGP instance is ready and we return early if it is not. Then, we decode
the message and do something with the information contained in it.
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
(cherry picked from commit bdc2c7bc54
)
This commit is contained in:
parent
20593bf0fb
commit
238f2b0d14
@ -3187,12 +3187,12 @@ static int bgp_zebra_process_srv6_locator_add(ZAPI_CALLBACK_ARGS)
|
|||||||
struct bgp *bgp = bgp_get_default();
|
struct bgp *bgp = bgp_get_default();
|
||||||
const char *loc_name = bgp->srv6_locator_name;
|
const char *loc_name = bgp->srv6_locator_name;
|
||||||
|
|
||||||
if (zapi_srv6_locator_decode(zclient->ibuf, &loc) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (!bgp || !bgp->srv6_enabled)
|
if (!bgp || !bgp->srv6_enabled)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (zapi_srv6_locator_decode(zclient->ibuf, &loc) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (bgp_zebra_srv6_manager_get_locator_chunk(loc_name) < 0)
|
if (bgp_zebra_srv6_manager_get_locator_chunk(loc_name) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user