urlapi: verify the last letter of a scheme when set explictly

A logic error made the function not check the last character, which thus
could make it accept invalid schemes.

Added test 1965 to verify

Reported-by: Otis Cui Lei

Closes #20893
This commit is contained in:
Daniel Stenberg 2026-03-11 22:36:24 +01:00
parent 5fc7d50cec
commit 11c14b5ca5
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
5 changed files with 103 additions and 2 deletions

44
tests/data/test1965 Normal file
View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="US-ASCII"?>
<testcase>
<info>
<keywords>
urlapi
curl_url_set
</keywords>
</info>
<client>
<name>
curl_url_set() different schemes
</name>
<tool>
lib%TESTNUMBER
</tool>
</client>
# Verify data after the test has been "shot"
<verify>
<stdout mode="text">
bad! REJECTED
bad{ REJECTED
bad/ REJECTED
bad\ REJECTED
a! REJECTED
a+123 ACCEPTED
http-2 ACCEPTED
http.1 ACCEPTED
a+-.123 ACCEPTED
http-+++2 ACCEPTED
http.1-- ACCEPTED
+a123 REJECTED
-http2 REJECTED
.http1 REJECTED
ABC2 ACCEPTED
2CBA REJECTED
REJECTED
a ACCEPTED
aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd ACCEPTED
aaaaaaaaaabbbbbbbbbbccccccccccdddddddddde REJECTED
</stdout>
</verify>
</testcase>