From: Martin Koegler Date: Sat, 16 Feb 2008 13:04:40 GMT Subject: [PATCH] parse_tag: fail, if tagged objected would be NULL Message-ID: <12031670802582-git-send-email-mkoegler@auto.tuwien.ac.at> The cause of a NULL in tag->tagged can be: * a unknown object type is used * the tag points to a object with an other type as stated in the tag. Both situations are most likley be caused by a not welformed tag. Catching this error here avoids doing tag->tagged!=NULL checks in the rest of git. Signed-off-by: Martin Koegler --- In my option, this change would simplity many things. tag.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/tag.c b/tag.c index 38bf913..96fef70 100644 --- a/tag.c +++ b/tag.c @@ -82,8 +82,12 @@ int parse_tag_buffer(struct tag *item, void *data, unsigned long size) } else { error("Unknown type %s", type); item->tagged = NULL; + return -1; } + if (!item->tagged) + return -1; + if (item->tagged && track_object_refs) { struct object_refs *refs = alloc_object_refs(1); refs->ref[0] = item->tagged; -- 1.5.4.1.gcb4c5