http: fix Basic auth with empty name field in URL

Add test 367 to verify.

Reported-by: Rick Lane
Fixes #7819
Closes #7820
This commit is contained in:
Daniel Stenberg 2021-10-06 15:40:53 +02:00
parent 5f563495f1
commit 87907d56f0
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 50 additions and 2 deletions

View File

@ -323,7 +323,7 @@ static CURLcode http_output_basic(struct Curl_easy *data, bool proxy)
pwd = data->state.aptr.passwd;
}
out = aprintf("%s:%s", user, pwd ? pwd : "");
out = aprintf("%s:%s", user ? user : "", pwd ? pwd : "");
if(!out)
return CURLE_OUT_OF_MEMORY;

View File

@ -60,7 +60,7 @@ test325 test326 test327 test328 test329 test330 test331 test332 test333 \
test334 test335 test336 test337 test338 test339 test340 test341 test342 \
test343 test344 test345 test346 test347 test348 test349 test350 test351 \
test352 test353 test354 test355 test356 test357 test358 test359 test360 \
test361 test362 test363 test364 test365 test366 \
test361 test362 test363 test364 test365 test366 test367 \
\
test392 test393 test394 test395 test396 test397 \
\

48
tests/data/test367 Normal file
View File

@ -0,0 +1,48 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
Basic
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Content-Length: 6
Connection: close
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
Empty user name provided in URL
</name>
<command>
http://:example@%HOSTIP:%HTTPPORT/%TESTNUMBER
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
GET /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Authorization: Basic OmV4YW1wbGU=
User-Agent: curl/%VERSION
Accept: */*
</protocol>
</verify>
</testcase>