mirror of
https://github.com/curl/curl.git
synced 2026-04-15 01:01:41 +03:00
urlapi: treat 0 alone as decimal number in IPv4 address
Not as a broken octcal. Regression from b4538ec522
Extended test 1560 to verify this behavior.
Reported-by: Carlos Henrique Lima Melara
Closes #16652
This commit is contained in:
parent
bad5e71331
commit
19d6415273
2 changed files with 35 additions and 3 deletions
|
|
@ -578,9 +578,8 @@ static int ipv4_normalize(struct dynbuf *host)
|
|||
int rc;
|
||||
curl_off_t l;
|
||||
if(*c == '0') {
|
||||
c++;
|
||||
if(*c == 'x') {
|
||||
c++; /* skip the prefix */
|
||||
if(c[1] == 'x') {
|
||||
c += 2; /* skip the prefix */
|
||||
rc = Curl_str_hex(&c, &l, UINT_MAX);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -529,6 +529,39 @@ static const struct testcase get_parts_list[] ={
|
|||
};
|
||||
|
||||
static const struct urltestcase get_url_list[] = {
|
||||
{"018.0.0.0", "http://018.0.0.0/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"08", "http://08/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0", "http://0.0.0.0/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"01", "http://0.0.0.1/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"02", "http://0.0.0.2/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"03", "http://0.0.0.3/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"04", "http://0.0.0.4/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"05", "http://0.0.0.5/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"06", "http://0.0.0.6/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"07", "http://0.0.0.7/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"07.1", "http://7.0.0.1/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"7.1", "http://7.0.0.1/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x7.1", "http://7.0.0.1/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x", "http://0x/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x1", "http://0.0.0.1/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x2", "http://0.0.0.2/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x3", "http://0.0.0.3/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x4", "http://0.0.0.4/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x5", "http://0.0.0.5/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x6", "http://0.0.0.6/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x7", "http://0.0.0.7/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x8", "http://0.0.0.8/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0x9", "http://0.0.0.9/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0xa", "http://0.0.0.10/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0xb", "http://0.0.0.11/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0xc", "http://0.0.0.12/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0xd", "http://0.0.0.13/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0xe", "http://0.0.0.14/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0xf", "http://0.0.0.15/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"0xg", "http://0xg/", CURLU_GUESS_SCHEME, 0, CURLUE_OK},
|
||||
{"https://0/", "https://0.0.0.0/", 0, 0, CURLUE_OK},
|
||||
{"https://0.0x0/", "https://0.0.0.0/", 0, 0, CURLUE_OK},
|
||||
{"https://0.000/", "https://0.0.0.0/", 0, 0, CURLUE_OK},
|
||||
{"example.com",
|
||||
"example.com/",
|
||||
CURLU_GUESS_SCHEME, CURLU_NO_GUESS_SCHEME, CURLUE_OK},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue