[PATCH v2 1/3] credential-cache--daemon: do not apply core.sharedRepository
- From
Farid Zakaria <farid.m.zakaria@gmail.com>
- Date
- Nov 4, 2026, 19:53 UTC
- Message-ID
- <20261104-fz-credential-cache-race-v2-1-ddccd0831eba@gmail.com>
- In-Reply-To
- <20261104-fz-credential-cache-race-v2-0-ddccd0831eba@gmail.com>
init_socket_directory() creates the leading directories of the socket path with safe_create_leading_directories_const(). That function honors "core.sharedRepository", which is meant for files inside the git directory. The socket lives in the user's home directory, e.g. "~/.cache/git/credential", and the repository the daemon happens to be started from has no say over its permissions.
Use safe_create_leading_directories_no_share_const() instead, which ignores "core.sharedRepository".
Signed-off-by: Farid Zakaria <farid.m.zakaria@gmail.com> --- builtin/credential-cache--daemon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/builtin/credential-cache--daemon.c b/builtin/credential-cache--daemon.c index 65cc619bec..5cc39cd172 100644 --- a/builtin/credential-cache--daemon.c +++ b/builtin/credential-cache--daemon.c @@ -271,7 +271,7 @@ static void init_socket_directory(const char *path) * condition in which somebody can chdir to it, sleep, then try to open * our protected socket. */ - if (safe_create_leading_directories_const(the_repository, dir) < 0) + if (safe_create_leading_directories_no_share_const(dir) < 0) die_errno("unable to create directories for '%s'", dir); if (mkdir(dir, 0700) < 0) die_errno("unable to mkdir '%s'", dir);
-- 2.55.0