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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.