git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Jacob Keller <jacob.e.keller@intel.com>,
	git@vger.kernel.org, Mark Strapetz <marc.strapetz@syntevo.com>,
	Stefan Beller <sbeller@google.com>,
	Junio C Hamano <gitster@pobox.com>,
	Jacob Keller <jacob.keller@gmail.com>,
	Shin Fan <shinfan@google.com>
Subject: Re: [PATCH] git_config_push_parameter: handle empty GIT_CONFIG_PARAMETERS
Date: Tue, 22 Mar 2016 14:43:55 -0700	[thread overview]
Message-ID: <20160322214355.GI28749@google.com> (raw)
In-Reply-To: <20160322195051.GA20563@sigill.intra.peff.net>

Jeff King wrote[1]:

> Subject: git_config_push_parameter: handle empty GIT_CONFIG_PARAMETERS
>
> The "git -c var=value" option stuffs the config value into
> $GIT_CONFIG_PARAMETERS, so that sub-processes can see it.
> When the config is later read via git_config() or similar,
> we parse it back out of that variable.  The parsing end is a
> little bit picky; it assumes that each entry was generated
> with sq_quote_buf(), and that there is no extraneous
> whitespace.
>
> On the generating end, we are careful to append to an
> existing $GIT_CONFIG_PARAMETERS variable if it exists.
> However, our test for "should we add a space separator" is
> too liberal: it will add one even if the environment
> variable exists but is empty. As a result, you might end up
> with:
>
>    GIT_CONFIG_PARAMETERS=" 'core.foo=bar'"
>
> which the parser will choke on.
>
> This was hard to trigger in older versions of git, since we
> only set the variable when we had something to put into it
> (though you could certainly trigger it manually). But since
> 14111fc (git: submodule honor -c credential.* from command
> line, 2016-02-29), the submodule code will unconditionally
> put the $GIT_CONFIG_PARAMETERS variable into the environment
> of any operation in the submodule, whether it is empty or
> not. So any of those operations which themselves use "git
> -c" will generate the unparseable value and fail.
>
> We can easily fix it by catching this case on the generating
> side. While we're adding a test, let's also check that
> multiple layers of "git -c" work, which was previously not
> tested at all.
>
> Reported-by: Jonathan Nieder <jrnieder@gmail.com>

I should have mentioned this is

Reported-by: Shin Fan <shinfan@google.com>

> Signed-off-by: Jeff King <peff@peff.net>
> ---
> I just did this on master, and it is standalone. But for the reasons
> above I think it would also be fine to stick on the tip of the
> jk/submodule-c-credential topic.
>
>  config.c               |  2 +-
>  t/t1300-repo-config.sh | 14 ++++++++++++++
>  2 files changed, 15 insertions(+), 1 deletion(-)

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Tested-by: Jonathan Nieder <jrnieder@gmail.com>

Thanks for the quick fix.

Sincerely,
Jonathan

[1] http://thread.gmane.org/gmane.comp.version-control.git/287928/focus=289551

  parent reply	other threads:[~2016-03-22 21:44 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-29 22:58 [PATCH v6 0/7] submodule--helper credential.* pass into submodule Jacob Keller
2016-02-29 22:58 ` [PATCH v6 1/7] t/lib-httpd: load mod_unixd Jacob Keller
2016-02-29 22:58 ` [PATCH v6 2/7] submodule: don't pass empty string arguments to submodule--helper clone Jacob Keller
2016-02-29 23:14   ` Stefan Beller
2016-02-29 22:58 ` [PATCH v6 3/7] submodule: check argc count for git " Jacob Keller
2016-02-29 23:14   ` Stefan Beller
2016-02-29 22:58 ` [PATCH v6 4/7] submodule: fix submodule--helper clone usage Jacob Keller
2016-02-29 23:15   ` Stefan Beller
2016-02-29 22:58 ` [PATCH v6 5/7] submodule: fix segmentation fault in submodule--helper clone Jacob Keller
2016-02-29 23:20   ` Stefan Beller
2016-02-29 23:36     ` Jacob Keller
2016-02-29 22:58 ` [PATCH v6 6/7] quote: implement sq_quotef() Jacob Keller
2016-02-29 22:58 ` [PATCH v6 7/7] git: submodule honor -c credential.* from command line Jacob Keller
2016-02-29 23:39   ` Stefan Beller
2016-02-29 23:44     ` Jacob Keller
2016-03-01  1:36       ` Jeff King
2016-03-01 17:26     ` Junio C Hamano
2016-03-01 18:05       ` Jacob Keller
2016-03-01 19:07         ` Junio C Hamano
2016-03-01 22:03           ` Jacob Keller
2016-03-22 18:56   ` Jonathan Nieder
2016-03-22 19:23     ` Jeff King
2016-03-22 19:50       ` [PATCH] git_config_push_parameter: handle empty GIT_CONFIG_PARAMETERS Jeff King
2016-03-22 20:29         ` Junio C Hamano
2016-03-22 21:43         ` Jonathan Nieder [this message]
2016-03-23  0:14           ` Jacob Keller
2016-03-23 20:46           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160322214355.GI28749@google.com \
    --to=jrnieder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jacob.e.keller@intel.com \
    --cc=jacob.keller@gmail.com \
    --cc=marc.strapetz@syntevo.com \
    --cc=peff@peff.net \
    --cc=sbeller@google.com \
    --cc=shinfan@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).