Commit bcc62cc9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

#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.
parent 97b466d4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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;

+1 −1
Original line number Diff line number Diff line
@@ -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

tests/data/test276

0 → 100644
+72 −0
Original line number Diff line number Diff line
<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>