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
next prev 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).