Fix missing return values and some error tests for empty index files
[git/git.git] / read-cache.c
index 2ede67d..50d0be3 100644 (file)
@@ -264,10 +264,9 @@ int read_cache(void)
        size = 0; // avoid gcc warning
        map = (void *)-1;
        if (!fstat(fd, &st)) {
        size = 0; // avoid gcc warning
        map = (void *)-1;
        if (!fstat(fd, &st)) {
-               map = NULL;
                size = st.st_size;
                errno = EINVAL;
                size = st.st_size;
                errno = EINVAL;
-               if (size > sizeof(struct cache_header))
+               if (size >= sizeof(struct cache_header))
                        map = mmap(NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
        }
        close(fd);
                        map = mmap(NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
        }
        close(fd);