#1151 curl 7.28 breaks git http/https transport when auth is used

closed-fixed
http (201)
5
2013-06-21
2012-10-16
Anonymous
No

Description:
New curl version (7.28) breaks git http/https transport when auth used.

git clone/push falls with "error: RPC failed; result=22, HTTP code = 401" on http/https repo with http authentication.
As I see in git logs (when started with GIT_CURL_VERBOSE=1) it doesn't sends Authorization header on POST.

With curl 7.27 all works fine.

Additional info:
* git 1.7.7.7 till 1.7.12.3
* curl 7.28

Steps to reproduce:
git clone/push http/https repo with auth. It will fail with "error: RPC failed; result=22, HTTP code = 401".
Fails on second POST request because of absence of Authorization HTTP header.

* curl -V
curl 7.28.0 (x86_64-unknown-linux-gnu) libcurl/7.28.0 OpenSSL/1.0.1c zlib/1.2.7 libssh2/1.4.2
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

Discussion

1 2 > >> (Page 1 of 2)
  • ce8311c7e49eca93c136b58efa6763853541ec97 is the first bad commit
    commit ce8311c7e49eca93c136b58efa6763853541ec97
    Author: Joe Mason <jmason@rim.com>
    Date: Fri Jul 27 17:25:45 2012 -0400

    Zero out auth structs before transfer

    :040000 040000 c666ee4089e5b205e9062d3afb0d69bb696f87e0 a43562a6999f22e093048ec80631abf78d281541 M lib

     
  • Dan Fandrich
    Dan Fandrich
    2012-10-17

    This issue was solved in commit 1a02e84589efb3f8717d50bdc78d3f369b799198. Can you verify that it solves the problem for you?

     
  • Dan Fandrich
    Dan Fandrich
    2012-10-17

    • labels: --> http
     
  • Still broken for me in current git (f1d2e1850819f54d1c950989614da7445bdd457f)

     
  • I should also add that reverting ce8311c7e49eca93c136b58efa6763853541ec97 against current git does resolve the problem for me.

     
    • assigned_to: nobody --> bagder
     
  • Can you please help me and describe what the exact HTTP sequence is for the correct operation and for the faulty operation? I want to write up a curl test case for this and work from there!

     
1 2 > >> (Page 1 of 2)