<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>104307</bug_id>
          
          <creation_ts>2012-12-06 14:43:46 -0800</creation_ts>
          <short_desc>[curl] Incorrect stripping of query from file URL</short_desc>
          <delta_ts>2013-05-30 08:12:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mike Enright">menright</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>galpeter</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>785294</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Enright">menright</who>
    <bug_when>2012-12-06 14:43:46 -0800</bug_when>
    <thetext>CURL: Incorrect stripping of query from file URL:

A URL of 
file:///dir/foo3.html?3
Turns into 
file:///dir/foo

Before being passed to CURL.

The cause is in ResourceHandleManager.cpp ResourceHandleManager::initializeHandle. When kurl.isLocalFile() is true, the query string is obtained and then:

int queryIndex = url.find(query);
if (queryIndex != -1)
    url = url.left(queryIndex - 1);

The fix is to change the find to reverseFind.

I have seen that the CURL code is not popular, but it is still in SVN. 

I looked briefly for equivalent logic in the Soup code but I didn&apos;t find query strings being stripped, just fragment identifiers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895522</commentid>
    <comment_count>1</comment_count>
      <attachid>203351</attachid>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2013-05-30 06:56:58 -0700</bug_when>
    <thetext>Created attachment 203351
proposed patch

This is a more robust solution than doing a reverseFind.

For example:
 file:///dir/file3.html?3&amp;3

the reverseFind would end up something with:
 file:///dir/file3.html?3

but with this patch it&apos;ll be:
 file:///dir/file3.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895543</commentid>
    <comment_count>2</comment_count>
      <attachid>203351</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-30 08:12:46 -0700</bug_when>
    <thetext>Comment on attachment 203351
proposed patch

Clearing flags on attachment: 203351

Committed r150964: &lt;http://trac.webkit.org/changeset/150964&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895544</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-30 08:12:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203351</attachid>
            <date>2013-05-30 06:56:58 -0700</date>
            <delta_ts>2013-05-30 08:12:45 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>curl_file_query_fix.patch</filename>
            <type>text/plain</type>
            <size>1732</size>
            <attacher name="Peter Gal">galpeter</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmZTg2Yjc5Li4yNjkwODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMDUtMzAgIFBldGVyIEdhbCAgPGdhbHBldGVyQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICBDVVJMOiBJbmNvcnJlY3Qgc3RyaXBwaW5nIG9mIHF1ZXJ5IGZyb20gZmlsZSBVUkwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDMwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFyIHRo
ZSBxdWVyeSBwYXJ0IG9mIHRoZSBmaWxlIFVSTCBpZiB0aGVyZSBpcyBhbnkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFuYWdlcjo6aW5pdGlhbGl6ZUhhbmRsZSk6CisK
IDIwMTMtMDUtMzAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAg
IEF2b2lkIHVzaW5nIENTU09NIHN0eWxlIGRlY2xhcmF0aW9ucyBpbiBIVE1MIGVkaXRpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCmluZGV4IGEyYjg2MmUuLmMwOGYyMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZU1hbmFnZXIuY3BwCkBAIC02NjYsMTIgKzY2NiwxMSBAQCB2b2lkIFJlc291cmNl
SGFuZGxlTWFuYWdlcjo6aW5pdGlhbGl6ZUhhbmRsZShSZXNvdXJjZUhhbmRsZSogam9iKQogICAg
IFN0cmluZyB1cmwgPSBrdXJsLnN0cmluZygpOwogCiAgICAgaWYgKGt1cmwuaXNMb2NhbEZpbGUo
KSkgewotICAgICAgICBTdHJpbmcgcXVlcnkgPSBrdXJsLnF1ZXJ5KCk7CiAgICAgICAgIC8vIFJl
bW92ZSBhbnkgcXVlcnkgcGFydCBzZW50IHRvIGEgbG9jYWwgZmlsZS4KLSAgICAgICAgaWYgKCFx
dWVyeS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGludCBxdWVyeUluZGV4ID0gdXJsLmZpbmQo
cXVlcnkpOwotICAgICAgICAgICAgaWYgKHF1ZXJ5SW5kZXggIT0gLTEpCi0gICAgICAgICAgICAg
ICAgdXJsID0gdXJsLmxlZnQocXVlcnlJbmRleCAtIDEpOworICAgICAgICBpZiAoIWt1cmwucXVl
cnkoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIEJ5IHNldHRpbmcgdGhlIHF1ZXJ5IHRv
IGEgbnVsbCBzdHJpbmcgaXQnbGwgYmUgcmVtb3ZlZC4KKyAgICAgICAgICAgIGt1cmwuc2V0UXVl
cnkoU3RyaW5nKCkpOworICAgICAgICAgICAgdXJsID0ga3VybC5zdHJpbmcoKTsKICAgICAgICAg
fQogICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIE1JTUUgdHlwZSBiYXNlZCBvbiB0aGUgcGF0aC4K
ICAgICAgICAgZC0+bV9yZXNwb25zZS5zZXRNaW1lVHlwZShNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRN
SU1FVHlwZUZvclBhdGgodXJsKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>