From 58c6eabf95486f9983951e2a6eaa221f12d0fcf6 Mon Sep 17 00:00:00 2001 From: Claudio Costa Date: Mon, 17 Aug 2020 14:53:48 +0200 Subject: [PATCH] [MM-27836] Fix possible panic when patching config (#15262) * Fix possible panic when updating/patching config * Remove un-needed check --- api4/config.go | 2 +- api4/config_test.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/api4/config.go b/api4/config.go index f3de4256ae..c76c96e373 100644 --- a/api4/config.go +++ b/api4/config.go @@ -180,7 +180,7 @@ func patchConfig(c *Context, w http.ResponseWriter, r *http.Request) { } appCfg := c.App.Config() - if *appCfg.ServiceSettings.SiteURL != "" && *cfg.ServiceSettings.SiteURL == "" { + if *appCfg.ServiceSettings.SiteURL != "" && (cfg.ServiceSettings.SiteURL == nil || *cfg.ServiceSettings.SiteURL == "") { c.Err = model.NewAppError("patchConfig", "api.config.update_config.clear_siteurl.app_error", nil, "", http.StatusBadRequest) return } diff --git a/api4/config_test.go b/api4/config_test.go index 4589817f01..196df28295 100644 --- a/api4/config_test.go +++ b/api4/config_test.go @@ -550,6 +550,12 @@ func TestPatchConfig(t *testing.T) { cfg, resp = th.SystemAdminClient.GetConfig() CheckNoError(t, resp) require.Equal(t, nonEmptyURL, *cfg.ServiceSettings.SiteURL) + + // Check that sending an empty config returns an error. + _, resp = th.SystemAdminClient.PatchConfig(&model.Config{}) + require.NotNil(t, resp.Error) + CheckBadRequestStatus(t, resp) + assert.Equal(t, "api.config.update_config.clear_siteurl.app_error", resp.Error.Id) }) }