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 adfb7b5f48597c19c23235b74cf1a0c779985dc6..31fda73ae720e7c3d1abfa149e3259f179454f73 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;