urlapi: reject short file URLs
file URLs that are 6 bytes or shorter are not complete. Return CURLUE_MALFORMED_INPUT for those. Extended test 1560 to verify. Triggered by #8041 Closes #8042
This commit is contained in:
Родитель
ffb6a9e8a6
Коммит
3e6eb18fce
|
@ -824,6 +824,10 @@ static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
|
|||
|
||||
/* handle the file: scheme */
|
||||
if(url_has_scheme && !strcmp(schemebuf, "file")) {
|
||||
if(urllen <= 6)
|
||||
/* file:/ is not enough to actually be a complete file: URL */
|
||||
return CURLUE_MALFORMED_INPUT;
|
||||
|
||||
/* path has been allocated large enough to hold this */
|
||||
strcpy(path, &url[5]);
|
||||
|
||||
|
|
|
@ -267,6 +267,12 @@ static const struct testcase get_parts_list[] ={
|
|||
{"file:/hello.html",
|
||||
"file | [11] | [12] | [13] | [14] | [15] | /hello.html | [16] | [17]",
|
||||
0, 0, CURLUE_OK},
|
||||
{"file:/h",
|
||||
"file | [11] | [12] | [13] | [14] | [15] | /h | [16] | [17]",
|
||||
0, 0, CURLUE_OK},
|
||||
{"file:/",
|
||||
"file | [11] | [12] | [13] | [14] | [15] | | [16] | [17]",
|
||||
0, 0, CURLUE_MALFORMED_INPUT},
|
||||
{"file://127.0.0.1/hello.html",
|
||||
"file | [11] | [12] | [13] | [14] | [15] | /hello.html | [16] | [17]",
|
||||
0, 0, CURLUE_OK},
|
||||
|
|
Загрузка…
Ссылка в новой задаче