index d19f56d60cb166600f9fe906a213f20a04afe22e..4470d2bf78e1fbb00d00e487f41daa4373cf48e1 100644 (file)
--- a/tag.c
+++ b/tag.c
struct object *deref_tag(struct object *o, const char *warn, int warnlen)
{
while (o && o->type == OBJ_TAG)
- o = parse_object(((struct tag *)o)->tagged->sha1);
+ if (((struct tag *)o)->tagged)
+ o = parse_object(((struct tag *)o)->tagged->sha1);
+ else
+ o = NULL;
if (!o && warn) {
if (!warnlen)
warnlen = strlen(warn);