From cadec9bc22624a5a5c3fa006304704f24cda65f3 Mon Sep 17 00:00:00 2001 From: zeripath Date: Fri, 21 Feb 2020 18:18:13 +0000 Subject: Prevent panic on merge to PR (#10403) If you attempt to merge to a branch which on a PR there will be a nil pointer error in the pull request checker. This panic is uncaught and will bring down the gitea server. This PR adds protection to prevent this. --- services/pull/pull.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'services') diff --git a/services/pull/pull.go b/services/pull/pull.go index 6e51ad0a24..6af751856d 100644 --- a/services/pull/pull.go +++ b/services/pull/pull.go @@ -324,6 +324,10 @@ func PushToBaseRepo(pr *models.PullRequest) (err error) { } }() + if err := pr.LoadHeadRepo(); err != nil { + log.Error("Unable to load head repository for PR[%d] Error: %v", pr.ID, err) + return err + } headRepoPath := pr.HeadRepo.RepoPath() if err := git.Clone(headRepoPath, tmpBasePath, git.CloneRepoOptions{ @@ -340,6 +344,10 @@ func PushToBaseRepo(pr *models.PullRequest) (err error) { return fmt.Errorf("OpenRepository: %v", err) } + if err := pr.LoadBaseRepo(); err != nil { + log.Error("Unable to load base repository for PR[%d] Error: %v", pr.ID, err) + return err + } if err := gitRepo.AddRemote("base", pr.BaseRepo.RepoPath(), false); err != nil { return fmt.Errorf("tmpGitRepo.AddRemote: %v", err) } -- cgit v1.2.3