rerere: don't segfault on failure to open rr-cache
authorJeff King <peff@peff.net>
Fri, 4 Dec 2009 10:35:57 +0000 (05:35 -0500)
committerJunio C Hamano <gitster@pobox.com>
Fri, 4 Dec 2009 17:11:58 +0000 (09:11 -0800)
The rr-cache directory should always exist if we are doing
garbage collection (earlier code paths check this
explicitly), but we may not necessarily succeed in opening
it (for example, due to permissions problems). In that case,
we should print an error message rather than simply
segfaulting.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-rerere.c

index adfb7b5..31fda73 100644 (file)
@@ -48,6 +48,8 @@ static void garbage_collect(struct string_list *rr)
 
        git_config(git_rerere_gc_config, NULL);
        dir = opendir(git_path("rr-cache"));
+       if (!dir)
+               die_errno("unable to open rr-cache directory");
        while ((e = readdir(dir))) {
                if (is_dot_or_dotdot(e->d_name))
                        continue;