summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Thomas Rast <trast@student.ethz.ch>2008-07-01 11:47:04 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-07-01 17:05:42 -0700
commit4f3dcc2753ef6c244622334cef94a72682fcd850 (patch)
tree7cd5c738f81ef76eb867d0005fae74eba9144242
parentdoc/rev-parse: clarify reflog vs --until for specifying revisions (diff)
downloadtgif-4f3dcc2753ef6c244622334cef94a72682fcd850.tar.xz
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>
-rw-r--r--builtin-log.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin-log.c b/builtin-log.c
index 9817d6fbeb..9979e37f38 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -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;
}