From: Johannes Schindelin Date: Fri, 10 Jul 2026 11:39:27 +0000 (+0000) Subject: remote: guard `remote_tracking()` against NULL remote X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=2fdcce115a5ce4fe3d025858f958b92ab1c4d20e;p=thirdparty%2Fgit.git remote: guard `remote_tracking()` against NULL remote The `remote_tracking()` function unconditionally dereferences `remote->fetch` without checking whether remote is NULL. In practice, this never happens because the only caller (`apply_cas()`) guards the calls to this function by checking the `use_tracking` and `use_tracking_for_rest` attributes. However, it requires quite involved reasoning to reach that conclusion, and is therefore fragile. Just return -1 ("no tracking ref") when there is no remote to work with. Pointed out by Coverity. Assisted-by: Claude Opus 4.6 Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/remote.c b/remote.c index e6c52c850c..b17648d6ef 100644 --- a/remote.c +++ b/remote.c @@ -2713,6 +2713,8 @@ static int remote_tracking(struct remote *remote, const char *refname, { char *dst; + if (!remote) + BUG("remote_tracking() called with NULL remote"); dst = apply_refspecs(&remote->fetch, refname); if (!dst) return -1; /* no tracking ref for refname at remote */