diff --git a/app/post_metadata.go b/app/post_metadata.go index 069cef01d6..143fe6eb95 100644 --- a/app/post_metadata.go +++ b/app/post_metadata.go @@ -71,7 +71,11 @@ func (a *App) OverrideIconURLIfEmoji(post *model.Post) { if !ok || prop == nil { return } - emojiName := prop.(string) + + emojiName, ok := prop.(string) + if !ok { + return + } if !*a.Config().ServiceSettings.EnablePostIconOverride || emojiName == "" { return diff --git a/app/post_metadata_test.go b/app/post_metadata_test.go index 6c8b085898..bc6cf706d9 100644 --- a/app/post_metadata_test.go +++ b/app/post_metadata_test.go @@ -358,6 +358,25 @@ func TestPreparePostForClient(t *testing.T) { }) }) + t.Run("post props has invalid fields", func(t *testing.T) { + th := setup(t) + defer th.TearDown() + + post, err := th.App.CreatePost(&model.Post{ + UserId: th.BasicUser.Id, + ChannelId: th.BasicChannel.Id, + Message: "some post", + }, th.BasicChannel, false, true) + require.Nil(t, err) + + // this value expected to be a string + post.AddProp(model.POST_PROPS_OVERRIDE_ICON_EMOJI, true) + + require.NotPanics(t, func() { + _ = th.App.PreparePostForClient(post, false, false) + }) + }) + t.Run("proxy linked images", func(t *testing.T) { th := setup(t) defer th.TearDown()