aboutsummaryrefslogtreecommitdiff
path: root/routes
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2017-07-14 18:51:23 -0400
committerUnknwon <u@gogs.io>2017-07-14 18:51:23 -0400
commite02fac4968574694927859105e67aac3f665481d (patch)
tree80dc3c4970e817d97683e232eb51b21388b72fcc /routes
parent5a88546a8040c2f56b9cd924b2d4d5b180a63159 (diff)
repo: fix panic on pull request submit (#4572)
Diffstat (limited to 'routes')
-rw-r--r--routes/repo/pull.go16
1 files changed, 11 insertions, 5 deletions
diff --git a/routes/repo/pull.go b/routes/repo/pull.go
index 73757280..48eb76e7 100644
--- a/routes/repo/pull.go
+++ b/routes/repo/pull.go
@@ -101,8 +101,11 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
return
}
- repo, has := models.HasForkedRepo(ctxUser.ID, baseRepo.ID)
- if has {
+ repo, has, err := models.HasForkedRepo(ctxUser.ID, baseRepo.ID)
+ if err != nil {
+ c.ServerError("HasForkedRepo", err)
+ return
+ } else if has {
c.Redirect(repo.Link())
return
}
@@ -119,7 +122,7 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
return
}
- repo, err := models.ForkRepository(c.User, ctxUser, baseRepo, f.RepoName, f.Description)
+ repo, err = models.ForkRepository(c.User, ctxUser, baseRepo, f.RepoName, f.Description)
if err != nil {
c.Data["Err_RepoName"] = true
switch {
@@ -475,8 +478,11 @@ func ParseCompareInfo(c *context.Context) (*models.User, *models.Repository, *gi
// no need to check the fork relation.
if !isSameRepo {
var has bool
- headRepo, has = models.HasForkedRepo(headUser.ID, baseRepo.ID)
- if !has {
+ headRepo, has, err = models.HasForkedRepo(headUser.ID, baseRepo.ID)
+ if err != nil {
+ c.ServerError("HasForkedRepo", err)
+ return nil, nil, nil, nil, "", ""
+ } else if !has {
log.Trace("ParseCompareInfo [base_repo_id: %d]: does not have fork or in same repository", baseRepo.ID)
c.NotFound()
return nil, nil, nil, nil, "", ""