From f1c9ae568662ece61ba58f28a02c4b0875dce8b0 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Wed, 8 Feb 2017 02:07:17 -0800 Subject: Error on blank post IDs for get post query (#5326) --- store/sql_post_store.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'store/sql_post_store.go') diff --git a/store/sql_post_store.go b/store/sql_post_store.go index ae7a3c2c0..b74d53c29 100644 --- a/store/sql_post_store.go +++ b/store/sql_post_store.go @@ -189,10 +189,20 @@ func (s SqlPostStore) Get(id string) StoreChannel { result := StoreResult{} pl := &model.PostList{} + if len(id) == 0 { + result.Err = model.NewLocAppError("SqlPostStore.GetPost", "store.sql_post.get.app_error", nil, "id="+id) + storeChannel <- result + close(storeChannel) + return + } + var post model.Post err := s.GetReplica().SelectOne(&post, "SELECT * FROM Posts WHERE Id = :Id AND DeleteAt = 0", map[string]interface{}{"Id": id}) if err != nil { result.Err = model.NewLocAppError("SqlPostStore.GetPost", "store.sql_post.get.app_error", nil, "id="+id+err.Error()) + storeChannel <- result + close(storeChannel) + return } pl.AddPost(&post) @@ -204,10 +214,20 @@ func (s SqlPostStore) Get(id string) StoreChannel { rootId = post.Id } + if len(rootId) == 0 { + result.Err = model.NewLocAppError("SqlPostStore.GetPost", "store.sql_post.get.app_error", nil, "root_id="+rootId) + storeChannel <- result + close(storeChannel) + return + } + var posts []*model.Post _, err = s.GetReplica().Select(&posts, "SELECT * FROM Posts WHERE (Id = :Id OR RootId = :RootId) AND DeleteAt = 0", map[string]interface{}{"Id": rootId, "RootId": rootId}) if err != nil { result.Err = model.NewLocAppError("SqlPostStore.GetPost", "store.sql_post.get.app_error", nil, "root_id="+rootId+err.Error()) + storeChannel <- result + close(storeChannel) + return } else { for _, p := range posts { pl.AddPost(p) -- cgit v1.2.3-1-g7c22