[PATCH] parse_tag: fail, if tagged objected would be NULL
- From
- Martin Koegler <mkoegler@auto.tuwien.ac.at>
- Date
- Feb 16, 2008, 13:04 UTC
- 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 <mkoegler@auto.tuwien.ac.at> --- 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