Teach git-fsck to do the same kind of verification on tag objects that is already done by git-mktag. Signed-off-by: Johan Herland <johan@xxxxxxxxxxx> --- builtin-fsck.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/builtin-fsck.c b/builtin-fsck.c index cbbcaf0..a8914ae 100644 --- a/builtin-fsck.c +++ b/builtin-fsck.c @@ -344,6 +344,20 @@ static int fsck_commit(struct commit *commit) static int fsck_tag(struct tag *tag) { struct object *tagged = tag->tagged; + enum object_type type; + unsigned long size; + char *data = (char *) read_sha1_file(tag->object.sha1, &type, &size); + if (!data) + return error("Could not read tag %s", sha1_to_hex(tag->object.sha1)); + if (type != OBJ_TAG) { + free(data); + return error("Internal error: Tag %s not a tag", sha1_to_hex(tag->object.sha1)); + } + if (parse_and_verify_tag_buffer(0, data, size, 1)) { /* Thoroughly verify tag object */ + free(data); + return error("Tag %s failed thorough tag object verification", sha1_to_hex(tag->object.sha1)); + } + free(data); if (!tagged) { return objerror(&tag->object, "could not load tagged object"); -- 1.5.2 - 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