Merge pull request #12302 from louis-6wind/fix-isis_route_null-area

isisd: fix area NULL pointer in isis_route_update
This commit is contained in:
Olivier Dugeon 2022-11-17 12:25:43 +01:00 committed by GitHub
commit 884f617f54
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -485,6 +485,9 @@ static void isis_route_update(struct isis_area *area, struct prefix *prefix,
struct prefix_ipv6 *src_p, struct prefix_ipv6 *src_p,
struct isis_route_info *route_info) struct isis_route_info *route_info)
{ {
if (area == NULL)
return;
if (CHECK_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ACTIVE)) { if (CHECK_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ACTIVE)) {
if (CHECK_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED)) if (CHECK_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED))
return; return;
@ -492,9 +495,8 @@ static void isis_route_update(struct isis_area *area, struct prefix *prefix,
isis_route_remove_previous_sid(area, prefix, route_info); isis_route_remove_previous_sid(area, prefix, route_info);
/* Install route. */ /* Install route. */
if (area) isis_zebra_route_add_route(area->isis, prefix, src_p,
isis_zebra_route_add_route(area->isis, prefix, src_p, route_info);
route_info);
/* Install/reinstall Prefix-SID label. */ /* Install/reinstall Prefix-SID label. */
if (route_info->sr.present) if (route_info->sr.present)
isis_zebra_prefix_sid_install(area, prefix, route_info, isis_zebra_prefix_sid_install(area, prefix, route_info,
@ -509,9 +511,8 @@ static void isis_route_update(struct isis_area *area, struct prefix *prefix,
isis_zebra_prefix_sid_uninstall( isis_zebra_prefix_sid_uninstall(
area, prefix, route_info, &route_info->sr); area, prefix, route_info, &route_info->sr);
/* Uninstall route. */ /* Uninstall route. */
if (area) isis_zebra_route_del_route(area->isis, prefix, src_p,
isis_zebra_route_del_route(area->isis, prefix, src_p, route_info);
route_info);
hook_call(isis_route_update_hook, area, prefix, route_info); hook_call(isis_route_update_hook, area, prefix, route_info);
UNSET_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED); UNSET_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED);