From 1630fbcc960faad27a52c329addb108de6371b4b Mon Sep 17 00:00:00 2001 From: Dong Ma Date: Fri, 6 Mar 2026 12:41:25 +0800 Subject: [PATCH] fix: dereference *string and add nil check in Failover - Dereference lrp.HaChassisGroup to *lrp.HaChassisGroup in fmt.Errorf (govet: %q with *string) - Add nil check for gatewayPortInfo to return a proper error instead of panicking with nil pointer dereference when no gateway port is found Both issues were introduced in 162d467b (Sep 16, 2025). Signed-off-by: Dong Ma Signed-off-by: Dong Ma --- internal/ovnrouter/ovnrouter.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/ovnrouter/ovnrouter.go b/internal/ovnrouter/ovnrouter.go index e3293dd..a661dd0 100644 --- a/internal/ovnrouter/ovnrouter.go +++ b/internal/ovnrouter/ovnrouter.go @@ -192,6 +192,10 @@ func (m *Manager) Failover(ctx context.Context, router *apiv1alpha1.Router) erro } } + if gatewayPortInfo == nil { + return fmt.Errorf("no gateway chassis found for router %q", router.UID) + } + lrp := nbdb.LogicalRouterPort{UUID: string(*gatewayPortInfo.InternalUUID)} if err := m.client.Get(ctx, &lrp); err != nil { return fmt.Errorf("failed to get logical router port %q for router %q: %w", gatewayPortInfo.UUID, router.UID, err) @@ -203,7 +207,7 @@ func (m *Manager) Failover(ctx context.Context, router *apiv1alpha1.Router) erro if lrp.HaChassisGroup != nil { haChassisGroup := nbdb.HAChassisGroup{UUID: *lrp.HaChassisGroup} if err := m.client.Get(ctx, &haChassisGroup); err != nil { - return fmt.Errorf("failed to get HA chassis group %q for logical router port %q: %w", lrp.HaChassisGroup, lrp.UUID, err) + return fmt.Errorf("failed to get HA chassis group %q for logical router port %q: %w", *lrp.HaChassisGroup, lrp.UUID, err) } haChassis := []nbdb.HAChassis{}