<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/http.c, branch v2.4.11</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v2.4.11</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v2.4.11'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2015-09-28T22:28:31Z</updated>
<entry>
<title>Sync with 2.3.10</title>
<updated>2015-09-28T22:28:31Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-09-28T22:28:26Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=6343e2f6f271cf344ea8e7384342502faecaf37c'/>
<id>urn:sha1:6343e2f6f271cf344ea8e7384342502faecaf37c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>http: limit redirection depth</title>
<updated>2015-09-25T22:32:28Z</updated>
<author>
<name>Blake Burkhart</name>
<email>bburky@bburky.com</email>
</author>
<published>2015-09-22T22:06:20Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=b258116462399b318c86165c61a5c7123043cfd4'/>
<id>urn:sha1:b258116462399b318c86165c61a5c7123043cfd4</id>
<content type='text'>
By default, libcurl will follow circular http redirects
forever. Let's put a cap on this so that somebody who can
trigger an automated fetch of an arbitrary repository (e.g.,
for CI) cannot convince git to loop infinitely.

The value chosen is 20, which is the same default that
Firefox uses.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http: limit redirection to protocol-whitelist</title>
<updated>2015-09-25T22:30:39Z</updated>
<author>
<name>Blake Burkhart</name>
<email>bburky@bburky.com</email>
</author>
<published>2015-09-22T22:06:04Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=f4113cac0c88b4f36ee6f3abf3218034440a68e3'/>
<id>urn:sha1:f4113cac0c88b4f36ee6f3abf3218034440a68e3</id>
<content type='text'>
Previously, libcurl would follow redirection to any protocol
it was compiled for support with. This is desirable to allow
redirection from HTTP to HTTPS. However, it would even
successfully allow redirection from HTTP to SFTP, a protocol
that git does not otherwise support at all. Furthermore
git's new protocol-whitelisting could be bypassed by
following a redirect within the remote helper, as it was
only enforced at transport selection time.

This patch limits redirects within libcurl to HTTP, HTTPS,
FTP and FTPS. If there is a protocol-whitelist present, this
list is limited to those also allowed by the whitelist. As
redirection happens from within libcurl, it is impossible
for an HTTP redirect to a protocol implemented within
another remote helper.

When the curl version git was compiled with is too old to
support restrictions on protocol redirection, we warn the
user if GIT_ALLOW_PROTOCOL restrictions were requested. This
is a little inaccurate, as even without that variable in the
environment, we would still restrict SFTP, etc, and we do
not warn in that case. But anything else means we would
literally warn every time git accesses an http remote.

This commit includes a test, but it is not as robust as we
would hope. It redirects an http request to ftp, and checks
that curl complained about the protocol, which means that we
are relying on curl's specific error message to know what
happened. Ideally we would redirect to a working ftp server
and confirm that we can clone without protocol restrictions,
and not with them. But we do not have a portable way of
providing an ftp server, nor any other protocol that curl
supports (https is the closest, but we would have to deal
with certificates).

[jk: added test and version warning]

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http: always use any proxy auth method available</title>
<updated>2015-06-29T16:57:43Z</updated>
<author>
<name>Enrique Tobis</name>
<email>Enrique.Tobis@twosigma.com</email>
</author>
<published>2015-06-26T18:19:04Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=5841520b034ab08f132f7d066a19163a9e3d4c07'/>
<id>urn:sha1:5841520b034ab08f132f7d066a19163a9e3d4c07</id>
<content type='text'>
We set CURLOPT_PROXYAUTH to use the most secure authentication
method available only when the user has set configuration variables
to specify a proxy.  However, libcurl also supports specifying a
proxy through environment variables.  In that case libcurl defaults
to only using the Basic proxy authentication method, because we do
not use CURLOPT_PROXYAUTH.

Set CURLOPT_PROXYAUTH to always use the most secure authentication
method available, even when there is no git configuration telling us
to use a proxy. This allows the user to use environment variables to
configure a proxy that requires an authentication method different
from Basic.

Signed-off-by: Enrique A. Tobis &lt;etobis@twosigma.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http: release the memory of a http pack request as well</title>
<updated>2015-03-24T19:36:10Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2015-03-21T00:28:06Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=826aed50cbb072d8f159e4c8ba0f9bd3df21a234'/>
<id>urn:sha1:826aed50cbb072d8f159e4c8ba0f9bd3df21a234</id>
<content type='text'>
The cleanup function is used in 4 places now and it's always safe to
free up the memory as well.

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ye/http-accept-language'</title>
<updated>2015-03-06T23:02:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-03-06T23:02:24Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=74c91d1f7a1e7848a3614c1c5031755bfa5e80e1'/>
<id>urn:sha1:74c91d1f7a1e7848a3614c1c5031755bfa5e80e1</id>
<content type='text'>
Compilation fix for a recent topic in 'master'.

* ye/http-accept-language:
  gettext.c: move get_preferred_languages() from http.c
</content>
</entry>
<entry>
<title>gettext.c: move get_preferred_languages() from http.c</title>
<updated>2015-02-26T22:09:20Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2015-02-26T03:04:16Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=93f7d9108a0edf808e1e3bbcdbe6078310c22f9e'/>
<id>urn:sha1:93f7d9108a0edf808e1e3bbcdbe6078310c22f9e</id>
<content type='text'>
Calling setlocale(LC_MESSAGES, ...) directly from http.c, without
including &lt;locale.h&gt;, was causing compilation warnings.  Move the
helper function to gettext.c that already includes the header and
where locale-related issues are handled.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'tc/missing-http-proxyauth'</title>
<updated>2015-02-25T23:40:12Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-02-25T23:40:12Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=90eea883fd86a272a32c7d5f363445776e0680e2'/>
<id>urn:sha1:90eea883fd86a272a32c7d5f363445776e0680e2</id>
<content type='text'>
We did not check the curl library version before using
CURLOPT_PROXYAUTH feature that may not exist.

* tc/missing-http-proxyauth:
  http: support curl &lt; 7.10.7
</content>
</entry>
<entry>
<title>Merge branch 'jk/dumb-http-idx-fetch-fix' into maint</title>
<updated>2015-02-25T06:10:37Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-02-25T06:10:37Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=117c1b333da05e87a35ea73756518abe52407d84'/>
<id>urn:sha1:117c1b333da05e87a35ea73756518abe52407d84</id>
<content type='text'>
A broken pack .idx file in the receiving repository prevented the
dumb http transport from fetching a good copy of it from the other
side.

* jk/dumb-http-idx-fetch-fix:
  dumb-http: do not pass NULL path to parse_pack_index
</content>
</entry>
<entry>
<title>Merge branch 'ye/http-accept-language'</title>
<updated>2015-02-18T19:44:57Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-02-18T19:44:57Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=f18e3896f7e3fd8de060aa37d9e35387a3b9282b'/>
<id>urn:sha1:f18e3896f7e3fd8de060aa37d9e35387a3b9282b</id>
<content type='text'>
Using environment variable LANGUAGE and friends on the client side,
HTTP-based transports now send Accept-Language when making requests.

* ye/http-accept-language:
  http: add Accept-Language header if possible
</content>
</entry>
</feed>
