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:
Daniel Stenberg 2006-03-28 08:03:25 +00:00
parent 97b466d409
commit bcc62cc9e3
5 changed files with 80 additions and 2 deletions

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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
View 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>