From 5705f72fd6a1c0ebe3f3127faa7ebea5af7100d0 Mon Sep 17 00:00:00 2001
From: zeripath <art27@cantab.net>
Date: Thu, 11 Mar 2021 18:09:52 +0000
Subject: [PATCH] Prevent panic when editing forked repos by API (#14960)

When editing forked repos using the API the BaseRepository needs to loaded
in order to check its visibility otherwise there will be NPE panic.

Fix #14956

Signed-off-by: Andrew Thornton <art27@cantab.net>
---
 routers/api/v1/repo/repo.go | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go
index b12797f83..b7ed2951a 100644
--- a/routers/api/v1/repo/repo.go
+++ b/routers/api/v1/repo/repo.go
@@ -556,6 +556,10 @@ func updateBasicProperties(ctx *context.APIContext, opts api.EditRepoOption) err
 	if opts.Private != nil {
 		// Visibility of forked repository is forced sync with base repository.
 		if repo.IsFork {
+			if err := repo.GetBaseRepo(); err != nil {
+				ctx.Error(http.StatusInternalServerError, "Unable to load base repository", err)
+				return err
+			}
 			*opts.Private = repo.BaseRepo.IsPrivate
 		}