From e06513e4dad5d5db57fb644381fa4e6dfd9a0aac Mon Sep 17 00:00:00 2001 From: Doug Lauder Date: Thu, 4 Aug 2022 12:03:05 -0400 Subject: [PATCH] Fix panic caused by returning nil,nil in GetMemberForBoard (#3552) * fix panic caused by returning nil,nil in GetMemberForBoard * lint fix * lint fix- need updated variable name Co-authored-by: Scott Bishel --- .../mattermostauthlayer/mattermostauthlayer.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/server/services/store/mattermostauthlayer/mattermostauthlayer.go b/server/services/store/mattermostauthlayer/mattermostauthlayer.go index 033a535e2..9113c8e10 100644 --- a/server/services/store/mattermostauthlayer/mattermostauthlayer.go +++ b/server/services/store/mattermostauthlayer/mattermostauthlayer.go @@ -684,21 +684,21 @@ func (s *MattermostAuthLayer) implicitBoardMembershipsFromRows(rows *sql.Rows) ( func (s *MattermostAuthLayer) GetMemberForBoard(boardID, userID string) (*model.BoardMember, error) { bm, err := s.Store.GetMemberForBoard(boardID, userID) if model.IsErrNotFound(err) { - b, err := s.Store.GetBoard(boardID) - if err != nil { - return nil, err + b, boardErr := s.Store.GetBoard(boardID) + if boardErr != nil { + return nil, boardErr } if b.ChannelID != "" { - _, err := s.servicesAPI.GetChannelMember(b.ChannelID, userID) - if err != nil { + _, memberErr := s.servicesAPI.GetChannelMember(b.ChannelID, userID) + if memberErr != nil { var appErr *mmModel.AppError - if errors.As(err, &appErr) && appErr.StatusCode == http.StatusNotFound { + if errors.As(memberErr, &appErr) && appErr.StatusCode == http.StatusNotFound { // Plugin API returns error if channel member doesn't exist. // We're fine if it doesn't exist, so its not an error for us. return nil, nil } - return nil, err + return nil, memberErr } return &model.BoardMember{ @@ -712,6 +712,8 @@ func (s *MattermostAuthLayer) GetMemberForBoard(boardID, userID string) (*model. Synthetic: true, }, nil } + } else { + return nil, err } return bm, nil }