From: Junio C Hamano <junkio@cox.net>
To: Martin Atukunda <matlads@dsmagic.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] [COGITO] make cg-tag use git-check-ref-format
Date: Tue, 13 Dec 2005 03:13:12 -0800 [thread overview]
Message-ID: <7vy82p9rnb.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <11344712912199-git-send-email-matlads@dsmagic.com> (Martin Atukunda's message of "Tue, 13 Dec 2005 13:54:51 +0300")
Martin Atukunda <matlads@dsmagic.com> writes:
> The egrep pattern used by cg-tag is too restrictive. While it will prevent
> control characters from being specified as a tag name, it will also reject
> nearly anything written in a non-English language, as noted by -hpa
>...
> -(echo $name | egrep -qv '[^a-zA-Z0-9_.@!:-]') || \
> +git-check-ref-format $name || \
> die "name contains invalid characters"
Perhaps you meant to say:
git-check-ref-format "$name"
instead; after all you are dealing with potentially garbage
input from the user here.
While you are at it, you might want to also quote $_git/refs/tags
immediately follows the part that you patched, and there is
another.
-- >8 --
[PATCH] cg-tag: shell variable quoting.
Scripts sometimes tend to be loose in variable quoting, and
often they are justifiable (e.g. the variables are already
validated before used unquoted); but when checking the input, we
should try to be strict.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
diff --git a/cg-tag b/cg-tag
index da4f2d5..1efb50d 100755
--- a/cg-tag
+++ b/cg-tag
@@ -28,7 +28,7 @@
USAGE="cg-tag [-d DESCRIPTION] [-s [-k KEYNAME]] TAG_NAME [OBJECT_ID]"
-. ${COGITO_LIB}cg-Xlib || exit 1
+. "${COGITO_LIB}cg-Xlib" || exit 1
sign=
keyname=
@@ -54,10 +54,10 @@ id=$(cg-object-id -n "$id") || exit 1
type=$(git-cat-file -t "$id")
id=${id% *}
-(echo $name | egrep -qv '[^a-zA-Z0-9_.@!:-]') || \
- die "name contains invalid characters"
+git-check-ref-format "$name" ||
+ die "name $name contains invalid characters"
-mkdir -p $_git/refs/tags
+mkdir -p "$_git/refs/tags"
[ -s "$_git/refs/tags/$name" ] && die "tag already exists ($name)"
[ "$id" ] || id="$(cat "$_git/$(git-symbolic-ref HEAD)")"
@@ -83,7 +83,7 @@ if [ "$sign" ]; then
fi
cat "$tagdir/tag.asc" >>"$tagdir/tag"
fi
-if ! git-mktag <"$tagdir/tag" >$_git/refs/tags/$name; then
+if ! git-mktag <"$tagdir/tag" >"$_git/refs/tags/$name"; then
rm -rf "$tagdir"
die "error creating tag"
fi
next prev parent reply other threads:[~2005-12-13 11:13 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-13 10:54 [PATCH] [COGITO] make cg-tag use git-check-ref-format Martin Atukunda
2005-12-13 11:13 ` Junio C Hamano [this message]
2005-12-13 11:28 ` Martin Atukunda
2005-12-13 17:00 ` Petr Baudis
2005-12-13 18:41 ` Junio C Hamano
2005-12-15 22:24 ` Alex Riesen
2005-12-15 23:38 ` Junio C Hamano
2005-12-16 2:17 ` Junio C Hamano
2005-12-16 9:17 ` Petr Baudis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vy82p9rnb.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
--cc=matlads@dsmagic.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).