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

3 messages from 2005-10-09 to 2005-10-09. Participants: Paolo 'Blaisorblade' Giarrusso, Junio C Hamano.
Thread: https://gitlist.dev/t/2052

## Paolo 'Blaisorblade' Giarrusso, 2005-10-09 18:12

Subject: [PATCH 1/2] Fix git-verify-tag for local tags
Message-ID: <20051009181246.17885.81654.stgit@zion.home.lan>
URL: https://gitlist.dev/e/20051009181246.17885.81654.stgit%40zion.home.lan

```
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(-)

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, 2005-10-09 18:12

Subject: [PATCH 2/2] git-verify-tag: detect wrong syntax
Message-ID: <20051009181256.17885.6626.stgit@zion.home.lan>
URL: https://gitlist.dev/e/20051009181256.17885.6626.stgit%40zion.home.lan
In-Reply-To: <20051009181246.17885.81654.stgit@zion.home.lan>

```
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(-)

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, 2005-10-09 19:29

Subject: Re: [PATCH 1/2] Fix git-verify-tag for local tags
Message-ID: <7vk6gmebfc.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vk6gmebfc.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20051009181246.17885.81654.stgit@zion.home.lan>

```
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.

```
