diff options
author | Jeff King <peff@peff.net> | 2018-05-19 00:25:53 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-05-21 02:45:23 +0200 |
commit | 2dc417ab1fa87cbab99eaf8a293380fa763dcd2b (patch) | |
tree | 252a9b4d04f341686d78d62faaa8e08c276b6fbe /refs.c | |
parent | object.c: clear replace map before freeing it (diff) | |
download | git-2dc417ab1fa87cbab99eaf8a293380fa763dcd2b.tar.xz git-2dc417ab1fa87cbab99eaf8a293380fa763dcd2b.zip |
get_main_ref_store: BUG() when outside a repository
If we don't have a repository, then we can't initialize the
ref store. Prior to 64a741619d (refs: store the main ref
store inside the repository struct, 2018-04-11), we'd try to
access get_git_dir(), and outside a repository that would
trigger a BUG(). After that commit, though, we directly use
the_repository->git_dir; if it's NULL we'll just segfault.
Let's catch this case and restore the BUG() behavior.
Obviously we don't ever want to hit this code, but a BUG()
is a lot more helpful than a segfault if we do.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to '')
-rw-r--r-- | refs.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -1654,6 +1654,9 @@ struct ref_store *get_main_ref_store(struct repository *r) if (r->refs) return r->refs; + if (!r->gitdir) + BUG("attempting to get main_ref_store outside of repository"); + r->refs = ref_store_init(r->gitdir, REF_STORE_ALL_CAPS); return r->refs; } |