diff options
author | Thomas Rast <trast@student.ethz.ch> | 2008-07-01 11:47:04 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-07-01 17:05:42 -0700 |
commit | 4f3dcc2753ef6c244622334cef94a72682fcd850 (patch) | |
tree | 7cd5c738f81ef76eb867d0005fae74eba9144242 | |
parent | doc/rev-parse: clarify reflog vs --until for specifying revisions (diff) | |
download | tgif-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.c | 2 |
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; } |