threads / patch / 2052

patch, 2 partsgit-verify-tag: detect wrong syntax

Subject: [PATCH 2/2] git-verify-tag: detect wrong syntax

## tl;dr

3 messages between Oct 9, 2005 and Oct 9, 2005. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Paolo 'Blaisorblade' Giarrusso· Oct 9, 2005, 18:12 UTC · lore

[PATCH 1/2] Fix git-verify-tag for local tags

From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>

It currently exits printing "git-cat-file SHA1: bad file", while instead we must just abort the verification for local tags (i.e. referring to commit objects).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
---
 git-verify-tag.sh |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
Show changes to git-verify-tag.sh +4 −0
diff --git a/git-verify-tag.sh b/git-verify-tag.sh
--- a/git-verify-tag.sh
+++ b/git-verify-tag.sh
@@ -3,6 +3,10 @@
 
 tag=$(git-rev-parse $1) || exit 1
 
+type=$(git-cat-file -t $tag) || exit 1
+[ "$type" = "commit" ] && die "Light tag - verification impossible"
+[ "$type" = "tag" ] || die "Bad tag - SHA1 doesn't refer to a tag object nor to a commit one."
+
 git-cat-file tag $tag > .tmp-vtag || exit 1
 cat .tmp-vtag | sed '/-----BEGIN PGP/Q' | gpg --verify .tmp-vtag - || exit 1
 rm -f .tmp-vtag
Paolo 'Blaisorblade' Giarrusso· Oct 9, 2005, 18:12 UTC · re: Paolo 'Blaisorblade' Giarrusso · lore
From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>

Print proper error messages when failing, and handle -h/--help to avoid, if possible, to print double error message (from git-cat-file and from git-verify-tag).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
---
 git-verify-tag.sh |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
Show changes to git-verify-tag.sh +8 −1
diff --git a/git-verify-tag.sh b/git-verify-tag.sh
--- a/git-verify-tag.sh
+++ b/git-verify-tag.sh
@@ -1,9 +1,16 @@
 #!/bin/sh
 . git-sh-setup || die "Not a git archive"
 
+usage() {
+	die "usage: git-verify-tag <tag>"
+}
+
+[ $# = 1 ] || usage
+[ "$1" = "-h" -o "$1" = "--help" ] && usage
+
 tag=$(git-rev-parse $1) || exit 1
 
-type=$(git-cat-file -t $tag) || exit 1
+type=$(git-cat-file -t $tag) || usage
 [ "$type" = "commit" ] && die "Light tag - verification impossible"
 [ "$type" = "tag" ] || die "Bad tag - SHA1 doesn't refer to a tag object nor to a commit one."
 
Junio C Hamano· Oct 9, 2005, 19:29 UTC · re: Paolo 'Blaisorblade' Giarrusso · lore

Re: [PATCH 1/2] Fix git-verify-tag for local tags

Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> writes:
> From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
>
> It currently exits printing "git-cat-file SHA1: bad file", while instead we must
> just abort the verification for local tags (i.e. referring to commit objects).

Good spotting, but checking for type being not a tag (not limited to commit object) would be a better approach. I'll fix it up that way and apply (no need to resend). Thanks.

← back to recent threads