From 83546707085af9b59bdefdfbb2dc5511dadb57d7 Mon Sep 17 00:00:00 2001 From: zeripath Date: Thu, 16 Dec 2021 19:01:14 +0000 Subject: Prevent hang in git cat-file if repository is not a valid repository and other fixes (#17991) This PR contains multiple fixes. The most important of which is: * Prevent hang in git cat-file if the repository is not a valid repository Unfortunately it appears that if git cat-file is run in an invalid repository it will hang until stdin is closed. This will result in deadlocked /pulls pages and dangling git cat-file calls if a broken repository is tried to be reviewed or pulls exists for a broken repository. Fix #14734 Fix #9271 Fix #16113 Otherwise there are a few small other fixes included which this PR was initially intending to fix: * Fix panic on partial compares due to missing PullRequestWorkInProgressPrefixes * Fix links on pulls pages due to regression from #17551 - by making most /issues routes match /pulls too - Fix #17983 * Fix links on feeds pages due to another regression from #17551 but also fix issue with syncing tags - Fix #17943 * Add missing locale entries for oauth group claims * Prevent NPEs if ColorFormat is called on nil users, repos or teams. --- models/repo/repo.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'models/repo') diff --git a/models/repo/repo.go b/models/repo/repo.go index 43ac9fb62a..d0136e9c66 100644 --- a/models/repo/repo.go +++ b/models/repo/repo.go @@ -173,6 +173,13 @@ func (repo *Repository) SanitizedOriginalURL() string { // ColorFormat returns a colored string to represent this repo func (repo *Repository) ColorFormat(s fmt.State) { + if repo == nil { + log.ColorFprintf(s, "%d:%s/%s", + log.NewColoredIDValue(0), + "", + "") + return + } log.ColorFprintf(s, "%d:%s/%s", log.NewColoredIDValue(repo.ID), repo.OwnerName, -- cgit v1.2.3