threads / patch / 8442

patchfilter-branch: prevent filters from reading from stdin

Subject: [PATCH] filter-branch: prevent filters from reading from stdin

## tl;dr

2 messages between Jun 5, 2007 and Jun 5, 2007. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Matthias Lederhofer· Jun 5, 2007, 14:12 UTC · lore

stdin is the list of commits when the env, tree and index filter are executed. The filters are not supposed to read anything from stdin so the best is to give them /dev/null for reading.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
---
 git-filter-branch.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to git-filter-branch.sh +3 −3
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index f4cfbea..e220b85 100644
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -352,21 +352,21 @@ while read commit; do
 
 	eval "$(set_ident AUTHOR <../commit)"
 	eval "$(set_ident COMMITTER <../commit)"
-	eval "$filter_env"
+	eval "$filter_env" < /dev/null
 
 	if [ "$filter_tree" ]; then
 		git-checkout-index -f -u -a
 		# files that $commit removed are now still in the working tree;
 		# remove them, else they would be added again
 		git-ls-files -z --others | xargs -0 rm -f
-		eval "$filter_tree"
+		eval "$filter_tree" < /dev/null
 		git-diff-index -r $commit | cut -f 2- | tr '\n' '\0' | \
 			xargs -0 git-update-index --add --replace --remove
 		git-ls-files -z --others | \
 			xargs -0 git-update-index --add --replace --remove
 	fi
 
-	eval "$filter_index"
+	eval "$filter_index" < /dev/null
 
 	parentstr=
 	for parent in $(get_parents $commit); do
-- 
1.5.2.1.120.g3877-dirty
Johannes Schindelin· Jun 5, 2007, 16:10 UTC · re: Matthias Lederhofer · lore

Re: [PATCH] filter-branch: prevent filters from reading from stdin

Hi,
On Tue, 5 Jun 2007, Matthias Lederhofer wrote:
> stdin is the list of commits when the env, tree and index
> filter are executed.  The filters are not supposed to read
> anything from stdin so the best is to give them /dev/null
> for reading.

ACK. After chatting with Matthias on IRC, I agree that there is more damage than benefit from being able to (accidentally) take stdin in these filters.

Ciao, Dscho

← back to recent threads