models/repo_editor: ignore copying files with '.git/' path prefix (#5558)

pull/5564/head
Unknwon 2018-12-19 23:09:32 -05:00
parent 8c8c37a66b
commit 1f11c1f71a
No known key found for this signature in database
GPG Key ID: 25B575AE3213B2B3
1 changed files with 8 additions and 2 deletions

View File

@ -13,6 +13,7 @@ import (
"os/exec"
"path"
"path/filepath"
"strings"
"time"
"github.com/Unknwon/com"
@ -467,14 +468,19 @@ func (repo *Repository) UploadRepoFiles(doer *User, opts UploadRepoFileOptions)
dirPath := path.Join(localPath, opts.TreePath)
os.MkdirAll(dirPath, os.ModePerm)
// Copy uploaded files into repository.
// Copy uploaded files into repository
for _, upload := range uploads {
tmpPath := upload.LocalPath()
targetPath := path.Join(dirPath, upload.Name)
if !com.IsFile(tmpPath) {
continue
}
// Prevent copying files into .git directory, see https://github.com/gogs/gogs/issues/5558.
if strings.HasPrefix(upload.Name, ".git/") {
continue
}
targetPath := path.Join(dirPath, upload.Name)
if err = com.Copy(tmpPath, targetPath); err != nil {
return fmt.Errorf("copy: %v", err)
}