threads / patch / 28893

patchcompletion: don't leak variable from the prompt into environment

Subject: [PATCH] completion: don't leak variable from the prompt into environment

## tl;dr

3 messages between Nov 9, 2011 and Nov 9, 2011. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

SZEDER Gábor· Nov 9, 2011, 10:02 UTC · lore
Commit e5b8eebc (completion: fix issue with process substitution not
working on Git for Windows, 2011-10-26) introduced a new variable in
__git_ps1_show_upstream(), but didn't declare it as local to prevent
it from leaking into the environment.
---
 contrib/completion/git-completion.bash |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to contrib/completion/git-completion.bash +1 −1
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b3571ab4..d18895b1 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -110,7 +110,7 @@ __git_ps1_show_upstream ()
 	local upstream=git legacy="" verbose=""
 
 	# get some config options from git-config
-	output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
+	local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
 	while read key value; do
 		case "$key" in
 		bash.showupstream)
-- 
1.7.8.rc0.107.g695cb
Junio C Hamano· Nov 9, 2011, 13:11 UTC · re: SZEDER Gábor · lore

Re: [PATCH] completion: don't leak variable from the prompt into environment

SZEDER Gábor <szeder@ira.uka.de> writes:
Show 5 quoted lines
> Commit e5b8eebc (completion: fix issue with process substitution not
> working on Git for Windows, 2011-10-26) introduced a new variable in
> __git_ps1_show_upstream(), but didn't declare it as local to prevent
> it from leaking into the environment.
> ---
Thanks; I'd consider this signed-off?
Show 16 quoted lines
>  contrib/completion/git-completion.bash |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index b3571ab4..d18895b1 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -110,7 +110,7 @@ __git_ps1_show_upstream ()
>  	local upstream=git legacy="" verbose=""
>  
>  	# get some config options from git-config
> -	output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
> +	local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
>  	while read key value; do
>  		case "$key" in
>  		bash.showupstream)
SZEDER Gábor· Nov 9, 2011, 13:26 UTC · re: Junio C Hamano · lore

Re: [PATCH] completion: don't leak variable from the prompt into environment

Hi,
On Wed, Nov 09, 2011 at 05:11:26AM -0800, Junio C Hamano wrote:
Show 9 quoted lines
> SZEDER Gábor <szeder@ira.uka.de> writes:
> 
> > Commit e5b8eebc (completion: fix issue with process substitution not
> > working on Git for Windows, 2011-10-26) introduced a new variable in
> > __git_ps1_show_upstream(), but didn't declare it as local to prevent
> > it from leaking into the environment.
> > ---
> 
> Thanks; I'd consider this signed-off?
Oops, yeah, sorry.
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>

Just for the record: I pointed this out when the patch was discussed on the list, and proposed a better solution:

  http://thread.gmane.org/gmane.comp.version-control.git/184229/focus=184290

but apparently only after that patch was already merged. Since we are in -rc phase, this patch below chooses the less intrusive solution (i.e. it declares the variable as local instead of eliminating it by using the command substitution as here string).

Gábor
Show 17 quoted lines
> 
> >  contrib/completion/git-completion.bash |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> > index b3571ab4..d18895b1 100755
> > --- a/contrib/completion/git-completion.bash
> > +++ b/contrib/completion/git-completion.bash
> > @@ -110,7 +110,7 @@ __git_ps1_show_upstream ()
> >  	local upstream=git legacy="" verbose=""
> >  
> >  	# get some config options from git-config
> > -	output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
> > +	local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
> >  	while read key value; do
> >  		case "$key" in
> >  		bash.showupstream)

← back to recent threads