[MM-28383] Fix nil pointer dereference in addTeamMember (#15422)

* Fix nil pointer dereference in addTeamMember

* Revert to simple nil check

* Add test case

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Claudio Costa
2020-09-23 08:50:38 +02:00
коммит произвёл GitHub
родитель 5c449f4202
Коммит 9a4774bcc2
3 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@@ -569,6 +569,10 @@ func addTeamMember(c *Context, w http.ResponseWriter, r *http.Request) {
var err *model.AppError
member := model.TeamMemberFromJson(r.Body)
if member == nil {
c.Err = model.NewAppError("addTeamMember", "api.team.add_team_member.invalid_body.app_error", nil, "Error in model.TeamMemberFromJson()", http.StatusBadRequest)
return
}
if member.TeamId != c.Params.TeamId {
c.SetInvalidParam("team_id")
return

Просмотреть файл

@@ -1847,6 +1847,11 @@ func TestAddTeamMember(t *testing.T) {
_, resp = Client.AddTeamMember(team.Id, otherUser.Id)
CheckNoError(t, resp)
// Should return error with invalid JSON in body.
_, err = Client.DoApiPost("/teams/"+team.Id+"/members", "invalid")
require.NotNil(t, err)
require.Equal(t, "api.team.add_team_member.invalid_body.app_error", err.Id)
// by token
Client.Login(otherUser.Email, otherUser.Password)

Просмотреть файл

@@ -2182,6 +2182,10 @@
"id": "api.team.add_members.user_denied",
"translation": "This team is managed by groups. This user is not part of a group that is synced to this team."
},
{
"id": "api.team.add_team_member.invalid_body.app_error",
"translation": "Unable to parse the request body."
},
{
"id": "api.team.add_user_to_team.added",
"translation": "%v added to the team by %v."