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@xxxxxxxxxxxxxxxxx> --- 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 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html