summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-05-20 10:00:27 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-05-20 15:27:07 +0200
commit8b038bcc95c31ef90b1715b21f76ded390de88f2 (patch)
tree353b07f749c678f0d2fbe49ea9a7954d3676dc3a /tests
parentc454d7f3f433954bcc8300b2a8dd7d9ed0a80d2f (diff)
downloadcurl-8b038bcc95c31ef90b1715b21f76ded390de88f2.tar.gz
lib1560: add tests for parsing URL with too long scheme
Ref: #3905
Diffstat (limited to 'tests')
-rw-r--r--tests/libtest/lib1560.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/libtest/lib1560.c b/tests/libtest/lib1560.c
index a18d56a8e..1b72599ec 100644
--- a/tests/libtest/lib1560.c
+++ b/tests/libtest/lib1560.c
@@ -282,6 +282,14 @@ static struct testcase get_parts_list[] ={
};
static struct urltestcase get_url_list[] = {
+ /* 40 bytes scheme is the max allowed */
+ {"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA://hostname/path",
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa://hostname/path",
+ CURLU_NON_SUPPORT_SCHEME, 0, CURLUE_OK},
+ /* 41 bytes scheme is not allowed */
+ {"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA://hostname/path",
+ "",
+ CURLU_NON_SUPPORT_SCHEME, 0, CURLUE_MALFORMED_INPUT},
{"https://[fe80::20c:29ff:fe9c:409b%]:1234",
"",
0, 0, CURLUE_MALFORMED_INPUT},
@@ -417,6 +425,16 @@ static int checkurl(const char *url, const char *out)
/* !checksrc! disable SPACEBEFORECOMMA 1 */
static struct setcase set_parts_list[] = {
+ {"https://example.com/",
+ /* Set a 41 bytes scheme. That's too long so the old scheme remains set. */
+ "scheme=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc,",
+ "https://example.com/",
+ 0, CURLU_NON_SUPPORT_SCHEME, CURLUE_OK, CURLUE_MALFORMED_INPUT},
+ {"https://example.com/",
+ /* set a 40 bytes scheme */
+ "scheme=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,",
+ "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb://example.com/",
+ 0, CURLU_NON_SUPPORT_SCHEME, CURLUE_OK, CURLUE_OK},
{"https://[::1%25fake]:1234/",
"zoneid=NULL,",
"https://[::1]:1234/",