mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
#1451929 (http://curl.haxx.se/bug/view.cgi?id=1451929) detailed a bug that
occurred when asking libcurl to follow HTTP redirects and the original URL had more than one question mark (?). Added test case 276 to verify.
This commit is contained in:
parent
97b466d409
commit
bcc62cc9e3
5
CHANGES
5
CHANGES
@ -6,6 +6,11 @@
|
||||
|
||||
Changelog
|
||||
|
||||
Daniel (28 March 2006)
|
||||
- #1451929 (http://curl.haxx.se/bug/view.cgi?id=1451929) detailed a bug that
|
||||
occurred when asking libcurl to follow HTTP redirects and the original URL
|
||||
had more than one question mark (?). Added test case 276 to verify.
|
||||
|
||||
Daniel (27 March 2006)
|
||||
- David Byron found a problem multiple -d options when libcurl was built with
|
||||
--enable-debug, as then curl used free() on memory allocated both with
|
||||
|
@ -16,6 +16,7 @@ This release includes the following changes:
|
||||
|
||||
This release includes the following bugfixes:
|
||||
|
||||
o following redirects with more than one question mark in source URL
|
||||
o fixed debug build crash with -d
|
||||
o TFTP works on more systems
|
||||
o generates a fine AIX Toolbox RPM spec
|
||||
|
@ -1827,7 +1827,7 @@ CURLcode Curl_follow(struct SessionHandle *data,
|
||||
|
||||
/* First we need to find out if there's a ?-letter in the URL,
|
||||
and cut it and the right-side of that off */
|
||||
pathsep = strrchr(protsep, '?');
|
||||
pathsep = strchr(protsep, '?');
|
||||
if(pathsep)
|
||||
*pathsep=0;
|
||||
|
||||
|
@ -34,5 +34,5 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
|
||||
test250 test251 test252 test253 test254 test255 test521 test522 test523 \
|
||||
test256 test257 test258 test259 test260 test261 test262 test263 test264 \
|
||||
test265 test266 test267 test268 test269 test270 test271 test272 test273 \
|
||||
test274 test275 test524
|
||||
test274 test275 test524 test276
|
||||
|
||||
|
72
tests/data/test276
Normal file
72
tests/data/test276
Normal file
@ -0,0 +1,72 @@
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
followlocation
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/2760002.txt?coolsite=http://anotherurl/?a_second/2760002
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/2760002.txt?coolsite=http://anotherurl/?a_second/2760002
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP Location: following with multiple question marks in URLs
|
||||
</name>
|
||||
<command>
|
||||
"http://%HOSTIP:%HTTPPORT/want?uri=http://anything/276?secondq/276" -L
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /want?uri=http://anything/276?secondq/276 HTTP/1.1
|
||||
Host: 127.0.0.1:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /data/2760002.txt?coolsite=http://anotherurl/?a_second/2760002 HTTP/1.1
|
||||
Host: 127.0.0.1:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
Loading…
Reference in New Issue
Block a user