threads / bug / 39024

Bug: global bash variable leak on __gitcompappend

Subject: Bug: global bash variable leak on __gitcompappend

## tl;dr

One message between Apr 7, 2015 and Apr 7, 2015.

replies: 0people: 1as markdown or json

Marcio Almada· Apr 7, 2015, 08:42 UTC · lore
Hi,
This is how to reproduce the bug:

``` git checkout [tab-tab] echo $x # outputs the name of the last branch on completion list ```

Or more directly:

``` __gitcompappend "something" echo $x # outputs 'something' ```

No big deal, but it's annoying to know that `$x` is lurking.

Cheers, Márcio Almada.

From 9ff849272f80f5e21a681995ed9aecfffcaf2a87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A1rcio=20Almada?= <marcio3w@gmail.com>
Date: Tue, 7 Apr 2015 05:11:35 -0300
Subject: [PATCH] fix global bash variable leak on __gitcompappend
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index fbe5972..5944c82 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -186,7 +186,7 @@ fi
 
 __gitcompappend ()
 {
-	local i=${#COMPREPLY[@]}
+	local x i=${#COMPREPLY[@]}
 	for x in $1; do
 		if [[ "$x" == "$3"* ]]; then
 			COMPREPLY[i++]="$2$x$4"
-- 
1.9.3

← back to recent threads