summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2019-10-19 10:33:10 -0700
committerIan Jackson <ijackson@chiark.greenend.org.uk>2020-02-02 16:35:04 +0000
commit70df464217c2b96ea481cb3b28210b53a2d7e040 (patch)
treecf7a7de7ebd6883fa1b3d9d372bc7e609d092661
parent134addbf3309871ef36016dd136c362b9cade482 (diff)
git-debpush: avoid a pipefail problem in get_file_from_ref
`grep -q` exits as soon as it finds a matching line, potentially sending a SIGPIPE to git-ls-tree. We have pipefail turned on, so that can make the whole pipeline exit nonzero, which is wrong when grep did in fact find a match. This solution is more readable than disabling pipefail just for this line (as is done elsewhere in git-debpush). Closes: #940588 Reported-by: Andrej Shadura <andrewsh@debian.org> Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rwxr-xr-xgit-debpush4
1 files changed, 3 insertions, 1 deletions
diff --git a/git-debpush b/git-debpush
index c3b067d..2790560 100755
--- a/git-debpush
+++ b/git-debpush
@@ -59,8 +59,10 @@ badusage () {
get_file_from_ref () {
local path=$1
+ # redirect to /dev/null instead of using `grep -Eq` to avoid grep
+ # SIGPIPEing git-ls-tree
if git ls-tree --name-only -r "$branch" \
- | grep -Eq "^$path$"; then
+ | grep -E "^$path$" >/dev/null; then
git cat-file blob $branch:$path
fi
}