diff options
author | Mark Lodato <lodatom@gmail.com> | 2009-09-12 20:33:23 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-09-13 01:28:07 -0700 |
commit | d3d7d47e6e0c3077fa39ffcca2b7f5f48ea97812 (patch) | |
tree | 27f36a974a6947004d64ec131e721d968e0757ea /t/t9138-git-svn-authors-prog.sh | |
parent | 45c58ba00a9c4e31e94997b59fd8112f962fa222 (diff) | |
download | git-d3d7d47e6e0c3077fa39ffcca2b7f5f48ea97812.tar.gz git-d3d7d47e6e0c3077fa39ffcca2b7f5f48ea97812.tar.xz |
svn: properly escape arguments for authors-prog
Previously, the call to authors-prog was not properly escaped, so any
special characters in the Subversion username, such as spaces and
semi-colons, would be interpreted by the shell rather than being passed
in as the first argument. Now all unsafe characters are escaped using
"git rev-parse --sq-quote"
[ew: switched from "\Q..\E" to "rev-parse --sq-quote"]
Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t9138-git-svn-authors-prog.sh')
-rwxr-xr-x | t/t9138-git-svn-authors-prog.sh | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/t/t9138-git-svn-authors-prog.sh b/t/t9138-git-svn-authors-prog.sh index a4b00f2a3..83cc5fc9d 100755 --- a/t/t9138-git-svn-authors-prog.sh +++ b/t/t9138-git-svn-authors-prog.sh @@ -66,4 +66,18 @@ test_expect_success 'authors-file overrode authors-prog' ' ) ' +git --git-dir=x/.git config --unset svn.authorsfile +git --git-dir=x/.git config --unset svn.authorsprog + +test_expect_success 'authors-prog handled special characters in username' ' + svn mkdir -m bad --username "xyz; touch evil" "$svnrepo"/bad && + ( + cd x && + git svn --authors-prog=../svn-authors-prog fetch && + git rev-list -1 --pretty=raw refs/remotes/git-svn | + grep "^author xyz; touch evil <xyz; touch evil@example\.com> " && + ! test -f evil + ) +' + test_done |