Verify that the object type matches for tree/commit objects even before parsing.
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 24 Apr 2005 21:22:09 +0000 (14:22 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 24 Apr 2005 21:22:09 +0000 (14:22 -0700)
The type doesn't come from the parsing, the type also has to match the usage.

commit.c
tree.c

index c0dd689..c6fdfd4 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -15,7 +15,7 @@ struct commit *lookup_commit(unsigned char *sha1)
                ret->object.type = commit_type;
                return ret;
        }
-       if (obj->parsed && obj->type != commit_type) {
+       if (obj->type != commit_type) {
                error("Object %s is a %s, not a commit", 
                      sha1_to_hex(sha1), obj->type);
                return NULL;
diff --git a/tree.c b/tree.c
index 23476da..3537c11 100644 (file)
--- a/tree.c
+++ b/tree.c
@@ -80,7 +80,7 @@ struct tree *lookup_tree(unsigned char *sha1)
                ret->object.type = tree_type;
                return ret;
        }
-       if (obj->parsed && obj->type != tree_type) {
+       if (obj->type != tree_type) {
                error("Object %s is a %s, not a tree", 
                      sha1_to_hex(sha1), obj->type);
                return NULL;