From e39ab5c7dcfd6f16264b4a601aca7fa5a572dccf Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Mon, 10 Sep 2018 07:38:04 -0400 Subject: MM-12007 Add max dimensions to emoji images (#9379) --- app/emoji.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'app/emoji.go') diff --git a/app/emoji.go b/app/emoji.go index b07331e65..864dc31bf 100644 --- a/app/emoji.go +++ b/app/emoji.go @@ -23,9 +23,11 @@ import ( ) const ( - MaxEmojiFileSize = 1 << 20 // 1 MB - MaxEmojiWidth = 128 - MaxEmojiHeight = 128 + MaxEmojiFileSize = 1 << 20 // 1 MB + MaxEmojiWidth = 128 + MaxEmojiHeight = 128 + MaxEmojiOriginalWidth = 1028 + MaxEmojiOriginalHeight = 1028 ) func (a *App) CreateEmoji(sessionUserId string, emoji *model.Emoji, multiPartImageData *multipart.Form) (*model.Emoji, *model.AppError) { @@ -85,6 +87,11 @@ func (a *App) UploadEmojiImage(id string, imageData *multipart.FileHeader) *mode // make sure the file is an image and is within the required dimensions if config, _, err := image.DecodeConfig(bytes.NewReader(buf.Bytes())); err != nil { return model.NewAppError("uploadEmojiImage", "api.emoji.upload.image.app_error", nil, "", http.StatusBadRequest) + } else if config.Width > MaxEmojiOriginalWidth || config.Height > MaxEmojiOriginalHeight { + return model.NewAppError("uploadEmojiImage", "api.emoji.upload.large_image.too_large.app_error", map[string]interface{}{ + "MaxWidth": MaxEmojiOriginalWidth, + "MaxHeight": MaxEmojiOriginalHeight, + }, "", http.StatusBadRequest) } else if config.Width > MaxEmojiWidth || config.Height > MaxEmojiHeight { data := buf.Bytes() newbuf := bytes.NewBuffer(nil) -- cgit v1.2.3-1-g7c22