diff options
-rw-r--r-- | api/license.go | 2 | ||||
-rw-r--r-- | api/team.go | 8 | ||||
-rw-r--r-- | api4/command.go | 4 | ||||
-rw-r--r-- | api4/system.go | 2 | ||||
-rw-r--r-- | api4/team.go | 8 | ||||
-rw-r--r-- | app/auto_posts.go | 3 | ||||
-rw-r--r-- | app/channel.go | 2 | ||||
-rw-r--r-- | app/file.go | 2 | ||||
-rw-r--r-- | app/saml.go | 2 | ||||
-rw-r--r-- | app/user.go | 2 | ||||
-rw-r--r-- | cmd/platform/jobserver.go | 2 | ||||
-rw-r--r-- | cmd/platform/server.go | 2 | ||||
-rw-r--r-- | cmd/platform/test.go | 2 | ||||
-rw-r--r-- | i18n/en.json | 4 | ||||
-rw-r--r-- | manualtesting/manual_testing.go | 14 | ||||
-rw-r--r-- | model/gitlab/gitlab.go | 1 | ||||
-rw-r--r-- | utils/file.go | 2 |
17 files changed, 37 insertions, 25 deletions
diff --git a/api/license.go b/api/license.go index 06d4aa3a7..a6a167cac 100644 --- a/api/license.go +++ b/api/license.go @@ -45,11 +45,11 @@ func addLicense(c *Context, w http.ResponseWriter, r *http.Request) { fileData := fileArray[0] file, err := fileData.Open() - defer file.Close() if err != nil { c.Err = model.NewAppError("addLicense", "api.license.add_license.open.app_error", nil, err.Error(), http.StatusInternalServerError) return } + defer file.Close() buf := bytes.NewBuffer(nil) io.Copy(buf, file) diff --git a/api/team.go b/api/team.go index 7f53786d9..089680624 100644 --- a/api/team.go +++ b/api/team.go @@ -386,10 +386,14 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { } importFromArray, ok := r.MultipartForm.Value["importFrom"] + if !ok || len(importFromArray) < 1 { + c.Err = model.NewAppError("importTeam", "api.team.import_team.no_import_from.app_error", nil, "", http.StatusBadRequest) + return + } importFrom := importFromArray[0] fileSizeStr, ok := r.MultipartForm.Value["filesize"] - if !ok { + if !ok || len(fileSizeStr) < 1 { c.Err = model.NewAppError("importTeam", "api.team.import_team.unavailable.app_error", nil, "", http.StatusBadRequest) return } @@ -414,11 +418,11 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { fileInfo := fileInfoArray[0] fileData, err := fileInfo.Open() - defer fileData.Close() if err != nil { c.Err = model.NewAppError("importTeam", "api.team.import_team.open.app_error", nil, err.Error(), http.StatusBadRequest) return } + defer fileData.Close() var log *bytes.Buffer switch importFrom { diff --git a/api4/command.go b/api4/command.go index 1a488b505..c92eb277a 100644 --- a/api4/command.go +++ b/api4/command.go @@ -156,8 +156,8 @@ func listCommands(c *Context, w http.ResponseWriter, r *http.Request) { return } - commands := []*model.Command{} - err := &model.AppError{} + var commands []*model.Command + var err *model.AppError if customOnly { if !c.App.SessionHasPermissionToTeam(c.Session, teamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { c.SetPermissionError(model.PERMISSION_MANAGE_SLASH_COMMANDS) diff --git a/api4/system.go b/api4/system.go index f3278a7b5..7bc846766 100644 --- a/api4/system.go +++ b/api4/system.go @@ -315,11 +315,11 @@ func addLicense(c *Context, w http.ResponseWriter, r *http.Request) { fileData := fileArray[0] file, err := fileData.Open() - defer file.Close() if err != nil { c.Err = model.NewAppError("addLicense", "api.license.add_license.open.app_error", nil, err.Error(), http.StatusBadRequest) return } + defer file.Close() buf := bytes.NewBuffer(nil) io.Copy(buf, file) diff --git a/api4/team.go b/api4/team.go index 58dcaca0d..fe5d7a266 100644 --- a/api4/team.go +++ b/api4/team.go @@ -623,10 +623,14 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { } importFromArray, ok := r.MultipartForm.Value["importFrom"] + if !ok || len(importFromArray) < 1 { + c.Err = model.NewAppError("importTeam", "api.team.import_team.no_import_from.app_error", nil, "", http.StatusBadRequest) + return + } importFrom := importFromArray[0] fileSizeStr, ok := r.MultipartForm.Value["filesize"] - if !ok { + if !ok || len(fileSizeStr) < 1 { c.Err = model.NewAppError("importTeam", "api.team.import_team.unavailable.app_error", nil, "", http.StatusBadRequest) return } @@ -651,11 +655,11 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { fileInfo := fileInfoArray[0] fileData, err := fileInfo.Open() - defer fileData.Close() if err != nil { c.Err = model.NewAppError("importTeam", "api.team.import_team.open.app_error", nil, err.Error(), http.StatusBadRequest) return } + defer fileData.Close() var log *bytes.Buffer switch importFrom { diff --git a/app/auto_posts.go b/app/auto_posts.go index 254631c4e..6d1e352e5 100644 --- a/app/auto_posts.go +++ b/app/auto_posts.go @@ -44,6 +44,9 @@ func (cfg *AutoPostCreator) UploadTestFile() ([]string, bool) { path, _ := utils.FindDir("web/static/images") file, err := os.Open(path + "/" + filename) + if err != nil { + return nil, false + } defer file.Close() data := &bytes.Buffer{} diff --git a/app/channel.go b/app/channel.go index 4ccc12004..de60fbae3 100644 --- a/app/channel.go +++ b/app/channel.go @@ -1185,7 +1185,7 @@ func (a *App) ViewChannel(view *model.ChannelView, userId string, clearPushNotif } } - times := map[string]int64{} + var times map[string]int64 if result := <-uchan; result.Err != nil { return nil, result.Err } else { diff --git a/app/file.go b/app/file.go index 11e503c40..3b221d9e2 100644 --- a/app/file.go +++ b/app/file.go @@ -259,10 +259,10 @@ func (a *App) UploadFiles(teamId string, channelId string, userId string, fileHe for i, fileHeader := range fileHeaders { file, fileErr := fileHeader.Open() - defer file.Close() if fileErr != nil { return nil, model.NewAppError("UploadFiles", "api.file.upload_file.bad_parse.app_error", nil, fileErr.Error(), http.StatusBadRequest) } + defer file.Close() buf := bytes.NewBuffer(nil) io.Copy(buf, file) diff --git a/app/saml.go b/app/saml.go index 3df00a9e1..bd9f647a1 100644 --- a/app/saml.go +++ b/app/saml.go @@ -36,10 +36,10 @@ func WriteSamlFile(fileData *multipart.FileHeader) *model.AppError { } file, err := fileData.Open() - defer file.Close() if err != nil { return model.NewAppError("AddSamlCertificate", "api.admin.add_certificate.open.app_error", nil, err.Error(), http.StatusInternalServerError) } + defer file.Close() configDir, _ := utils.FindDir("config") out, err := os.Create(configDir + filename) diff --git a/app/user.go b/app/user.go index 9f74ef303..999fabbf8 100644 --- a/app/user.go +++ b/app/user.go @@ -774,10 +774,10 @@ func (a *App) GetProfileImage(user *model.User) ([]byte, bool, *model.AppError) func (a *App) SetProfileImage(userId string, imageData *multipart.FileHeader) *model.AppError { file, err := imageData.Open() - defer file.Close() if err != nil { return model.NewAppError("SetProfileImage", "api.user.upload_profile_user.open.app_error", nil, err.Error(), http.StatusBadRequest) } + defer file.Close() // Decode image config first to check dimensions before loading the whole thing into memory later on config, _, err := image.DecodeConfig(file) diff --git a/cmd/platform/jobserver.go b/cmd/platform/jobserver.go index c38bfa4f0..e664136c0 100644 --- a/cmd/platform/jobserver.go +++ b/cmd/platform/jobserver.go @@ -46,7 +46,7 @@ func jobserverCmdF(cmd *cobra.Command, args []string) { a.Jobs.StartSchedulers() } - var signalChan chan os.Signal = make(chan os.Signal) + signalChan := make(chan os.Signal, 1) signal.Notify(signalChan, os.Interrupt, syscall.SIGINT, syscall.SIGTERM) <-signalChan diff --git a/cmd/platform/server.go b/cmd/platform/server.go index 05e527462..6de14d63e 100644 --- a/cmd/platform/server.go +++ b/cmd/platform/server.go @@ -144,7 +144,7 @@ func runServer(configFileLocation string) { // wait for kill signal before attempting to gracefully shutdown // the running service - c := make(chan os.Signal) + c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, syscall.SIGINT, syscall.SIGTERM) <-c diff --git a/cmd/platform/test.go b/cmd/platform/test.go index faf265a0d..c815eebc3 100644 --- a/cmd/platform/test.go +++ b/cmd/platform/test.go @@ -77,7 +77,7 @@ func serverForWebClientTestsCmdF(cmd *cobra.Command, args []string) error { wsapi.Init(a, a.Srv.WebSocketRouter) a.UpdateConfig(setupClientTests) - c := make(chan os.Signal) + c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, syscall.SIGINT, syscall.SIGTERM) <-c diff --git a/i18n/en.json b/i18n/en.json index 82e8ebf40..a5ab636cd 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -2172,6 +2172,10 @@ "translation": "Could not parse multipart form" }, { + "id": "api.team.import_team.no_import_from.app_error", + "translation": "Malformed request: importFrom field is not present." + }, + { "id": "api.team.import_team.unavailable.app_error", "translation": "Malformed request: filesize field is not present." }, diff --git a/manualtesting/manual_testing.go b/manualtesting/manual_testing.go index 75274a24b..20b7a2dfd 100644 --- a/manualtesting/manual_testing.go +++ b/manualtesting/manual_testing.go @@ -138,18 +138,16 @@ func manualTest(c *api.Context, w http.ResponseWriter, r *http.Request) { // Grab the test ID and pick the test testname, ok := params["test"] - var err2 *model.AppError + if !ok { + c.Err = model.NewAppError("/manual", "manaultesting.manual_test.parse.app_error", nil, "", http.StatusBadRequest) + return + } + switch testname[0] { case "autolink": - err2 = testAutoLink(env) + c.Err = testAutoLink(env) // ADD YOUR NEW TEST HERE! case "general": - err2 = nil - } - - if err != nil { - c.Err = err2 - return } } diff --git a/model/gitlab/gitlab.go b/model/gitlab/gitlab.go index 02955f13b..7e0cb10af 100644 --- a/model/gitlab/gitlab.go +++ b/model/gitlab/gitlab.go @@ -46,7 +46,6 @@ func userFromGitLabUser(glu *GitLabUser) *model.User { } else { user.FirstName = glu.Name } - strings.TrimSpace(user.Email) user.Email = glu.Email userId := strconv.FormatInt(glu.Id, 10) user.AuthData = &userId diff --git a/utils/file.go b/utils/file.go index bc97252ae..c7e092a20 100644 --- a/utils/file.go +++ b/utils/file.go @@ -104,10 +104,10 @@ func ReadFile(path string) ([]byte, *model.AppError) { } bucket := Cfg.FileSettings.AmazonS3Bucket minioObject, err := s3Clnt.GetObject(bucket, path) - defer minioObject.Close() if err != nil { return nil, model.NewAppError("ReadFile", "api.file.read_file.s3.app_error", nil, err.Error(), http.StatusInternalServerError) } + defer minioObject.Close() if f, err := ioutil.ReadAll(minioObject); err != nil { return nil, model.NewAppError("ReadFile", "api.file.read_file.s3.app_error", nil, err.Error(), http.StatusInternalServerError) } else { |