From 7aeb1adff2889781a1d22a5d40f6ae31090f27d3 Mon Sep 17 00:00:00 2001 From: Gabriel MABILLE Date: Tue, 22 Oct 2024 19:09:44 +0200 Subject: [PATCH] Fix: Check JSON data is not nil (#95189) * Fix: Fix panic when json data are nil * Use Interface() * Feedback Co-authored-by: Eric Leijonmarck * Need to check inside the if statement --------- Co-authored-by: Eric Leijonmarck --- pkg/services/datasources/service/datasource.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/services/datasources/service/datasource.go b/pkg/services/datasources/service/datasource.go index c553bd2cd08..7e422d4b6ab 100644 --- a/pkg/services/datasources/service/datasource.go +++ b/pkg/services/datasources/service/datasource.go @@ -543,10 +543,17 @@ func (s *Service) UpdateDataSource(ctx context.Context, cmd *datasources.UpdateD "datasource_uid", dataSource.UID) if dataSource.JsonData != nil { - previousRules := dataSource.JsonData.Get("teamHttpHeaders") + previousRules := dataSource.JsonData.Get("teamHttpHeaders").Interface() if previousRules == nil { - cmd.JsonData.Del("teamHttpHeaders") + if cmd.JsonData != nil { + cmd.JsonData.Del("teamHttpHeaders") + } } else { + if cmd.JsonData == nil { + // It's fine to instantiate a new JsonData here + // Because it's done in the SQLStore.UpdateDataSource anyway + cmd.JsonData = simplejson.New() + } cmd.JsonData.Set("teamHttpHeaders", previousRules) } }