diff --git a/src/repository.c b/src/repository.c index b0359a58f..28505e822 100644 --- a/src/repository.c +++ b/src/repository.c @@ -1827,10 +1827,15 @@ int git_repository_is_shallow(git_repository *repo) { git_buf path = GIT_BUF_INIT; struct stat st; + int error; git_buf_joinpath(&path, repo->path_repository, "shallow"); + error = git_path_lstat(path.ptr, &st); + git_buf_free(&path); - if (git_path_lstat(path.ptr, &st) == GIT_ENOTFOUND) + if (error == GIT_ENOTFOUND) return 0; + if (error < 0) + return -1; return st.st_size == 0 ? 0 : 1; }