From 41c2bf853f072008330a929480bf235ac840212a Mon Sep 17 00:00:00 2001 From: Louis Scalbert Date: Thu, 10 Nov 2022 17:18:01 +0100 Subject: [PATCH] isisd: fix area NULL pointer in isis_route_update Fix the case area is NULL. Fixes: acc0029779 ("isisd: fix potential access to NULL pointer in isis_route_update") Signed-off-by: Louis Scalbert --- isisd/isis_route.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/isisd/isis_route.c b/isisd/isis_route.c index 4fdb11b211..c7dc9b7c44 100644 --- a/isisd/isis_route.c +++ b/isisd/isis_route.c @@ -485,6 +485,9 @@ static void isis_route_update(struct isis_area *area, struct prefix *prefix, struct prefix_ipv6 *src_p, 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_ZEBRA_SYNCED)) 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); /* Install route. */ - if (area) - isis_zebra_route_add_route(area->isis, prefix, src_p, - route_info); + isis_zebra_route_add_route(area->isis, prefix, src_p, + route_info); /* Install/reinstall Prefix-SID label. */ if (route_info->sr.present) 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( area, prefix, route_info, &route_info->sr); /* Uninstall route. */ - if (area) - isis_zebra_route_del_route(area->isis, prefix, src_p, - route_info); + isis_zebra_route_del_route(area->isis, prefix, src_p, + route_info); hook_call(isis_route_update_hook, area, prefix, route_info); UNSET_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED);