builtin-checkout.c: check error return from read_cache()
[git/git.git] / builtin-checkout.c
index 7f3bd7b..c2c0561 100644 (file)
@@ -228,7 +228,8 @@ static int checkout_paths(struct tree *source_tree, const char **pathspec,
        struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file));
 
        newfd = hold_locked_index(lock_file, 1);
-       read_cache();
+       if (read_cache() < 0)
+               return error("corrupt index file");
 
        if (source_tree)
                read_tree_some(source_tree, pathspec);
@@ -371,7 +372,9 @@ static int merge_working_tree(struct checkout_opts *opts,
        int ret;
        struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file));
        int newfd = hold_locked_index(lock_file, 1);
-       read_cache();
+
+       if (read_cache() < 0)
+               return error("corrupt index file");
 
        if (opts->force) {
                ret = reset_tree(new->commit->tree, opts, 1);