From 208920b5e1b9746d3736e44edf090fa2ac6bffe6 Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Wed, 6 Oct 2021 13:41:18 +0530 Subject: [PATCH] MM-38497: Fix Sentry crash in PostAction.Equals (#18571) * MM-38497: Fix Sentry crash in PostAction.Equals We check for nil pointer before moving ahead. https://mattermost.atlassian.net/browse/MM-38497 ```release-note NONE ``` * Fix lint errors ```release-note NONE ``` * Update model/integration_action.go Co-authored-by: Claudio Costa Co-authored-by: Claudio Costa --- model/integration_action.go | 8 ++++++++ model/integration_action_test.go | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/model/integration_action.go b/model/integration_action.go index c61cc6d457..4c645d0288 100644 --- a/model/integration_action.go +++ b/model/integration_action.go @@ -115,6 +115,14 @@ func (p *PostAction) Equals(input *PostAction) bool { } // Compare PostActionIntegration + + // If input is nil, then return true if original is also nil. + // Else return false. + if input.Integration == nil { + return p.Integration == nil + } + + // Both are unequal and not nil. if p.Integration.URL != input.Integration.URL { return false } diff --git a/model/integration_action_test.go b/model/integration_action_test.go index ac378bdd8f..1123cf44ea 100644 --- a/model/integration_action_test.go +++ b/model/integration_action_test.go @@ -142,4 +142,16 @@ func TestPostActionIntegrationEquals(t *testing.T) { } require.False(t, pa1.Equals(pa2)) }) + + t.Run("nil check", func(t *testing.T) { + pa1 := &PostAction{ + Integration: &PostActionIntegration{}, + } + + pa2 := &PostAction{ + Integration: nil, + } + + require.False(t, pa1.Equals(pa2)) + }) }