From 4b1d51f1d0ec57e8bcf150c292eedeb85ebe415a Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Sun, 27 Apr 2025 20:42:42 +0000 Subject: [PATCH] Fix nil pointer deref Signed-off-by: Gabriel Adrian Samfira --- database/sql/instances.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/database/sql/instances.go b/database/sql/instances.go index 604682e9..987eb264 100644 --- a/database/sql/instances.go +++ b/database/sql/instances.go @@ -156,13 +156,20 @@ func (s *sqlDatabase) DeleteInstance(_ context.Context, poolID string, instanceN if instance.ProviderID != nil { providerID = *instance.ProviderID } - if notifyErr := s.sendNotify(common.InstanceEntityType, common.DeleteOperation, params.Instance{ + instanceNotif := params.Instance{ ID: instance.ID.String(), Name: instance.Name, ProviderID: providerID, AgentID: instance.AgentID, - PoolID: instance.PoolID.String(), - }); notifyErr != nil { + } + switch { + case instance.PoolID != nil: + instanceNotif.PoolID = instance.PoolID.String() + case instance.ScaleSetFkID != nil: + instanceNotif.ScaleSetID = *instance.ScaleSetFkID + } + + if notifyErr := s.sendNotify(common.InstanceEntityType, common.DeleteOperation, instanceNotif); notifyErr != nil { slog.With(slog.Any("error", notifyErr)).Error("failed to send notify") } } @@ -313,7 +320,7 @@ func (s *sqlDatabase) ListPoolInstances(_ context.Context, poolID string) ([]par } var instances []Instance - query := s.conn.Model(&Instance{}).Preload("Job", "Pool").Where("pool_id = ?", u) + query := s.conn.Model(&Instance{}).Preload("Job").Where("pool_id = ?", u) if err := query.Find(&instances); err.Error != nil { return nil, errors.Wrap(err.Error, "fetching instances")