Browse Source

Fix 'git show' on signed tag of signed tag of commit

The cmd_show loop resolves tags by showing them, then pointing the
object to the 'tagged' member.  However, this object is not fully
initialized; it only contains the SHA1.  (This resulted in a segfault
if there were two levels of tags.)  We apply parse_object to get a
full object.

Noticed by Kalle Olavi Niemitalo on IRC.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Thomas Rast 17 years ago committed by Junio C Hamano
parent
commit
4f3dcc2753
  1. 2
      builtin-log.c

2
builtin-log.c

@ -360,7 +360,7 @@ int cmd_show(int argc, const char **argv, const char *prefix) @@ -360,7 +360,7 @@ int cmd_show(int argc, const char **argv, const char *prefix)
t->tag,
diff_get_color_opt(&rev.diffopt, DIFF_RESET));
ret = show_object(o->sha1, 1, &rev);
objects[i].item = (struct object *)t->tagged;
objects[i].item = parse_object(t->tagged->sha1);
i--;
break;
}

Loading…
Cancel
Save