<?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>54304</bug_id>
          
          <creation_ts>2011-02-11 12:24:04 -0800</creation_ts>
          <short_desc>Check for empty scheme before accessing URLSchemeMaps in SchemeRegistry</short_desc>
          <delta_ts>2011-02-11 14:03:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Adam Klein">adamk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>349912</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-11 12:24:04 -0800</bug_when>
    <thetext>Check for empty scheme before accessing URLSchemeMaps in SchemeRegistry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349913</commentid>
    <comment_count>1</comment_count>
      <attachid>82159</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-11 12:25:23 -0800</bug_when>
    <thetext>Created attachment 82159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349915</commentid>
    <comment_count>2</comment_count>
      <attachid>82159</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-11 12:27:59 -0800</bug_when>
    <thetext>Comment on attachment 82159
Patch

This change is correct, but can you please construct a test case that shows the problem? Normally we require regression tests for all bug fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349939</commentid>
    <comment_count>3</comment_count>
      <attachid>82159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-11 12:52:38 -0800</bug_when>
    <thetext>Comment on attachment 82159
Patch

Rejecting attachment 82159 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;land-a...&quot; exit_code: 2

Last 500 characters of output:
ebKit
   2d3c60d..e45ab5e  master     -&gt; origin/master
	M	LayoutTests/platform/chromium/test_expectations.txt
	M	LayoutTests/ChangeLog
	M	Tools/DumpRenderTree/TestNetscapePlugIn/main.cpp
	M	Tools/DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp
	M	Tools/ChangeLog
	M	Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py
r78359 = e45ab5efb940172a265712fe69fb923eef21d2df (refs/remotes/trunk)
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/trunk.

Full output: http://queues.webkit.org/results/7869732</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349955</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-11 13:08:55 -0800</bug_when>
    <thetext>Thanks for the quick review. It&apos;s not currently possible to exercise this code with a layout test.  For shouldTreatURLSchemeAsSecure, the only caller is (in FrameLoader.cpp):

  if (!url.isValid || SchemeRegistry::shouldTreatURLSchemeAsSecure(url.protocol())

so the case is never hit.  The situation is similar for shouldLoadURLSchemeAsSecure in MainResourceLoader.cpp:

  return url.isEmpty() || SchemeRegistry::shouldLoadURLSchemeAsEmptyDocument(url.protocol());

Finally, shouldTreatURLSchemeAsNoAccess has no callers at all.

Nevertheless, I think this patch is a good idea, to avoid new, less careful callers causing crashes.  I just ran into this problem when trying to get https://bugs.webkit.org/show_bug.cgi?id=53529 landed (SecurityOrigin.cpp calls these methods without pre-validating the scheme).  And it appears to me that Adam Barth recently resolved the same issue for another method in http://trac.webkit.org/changeset/76637.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349984</commentid>
    <comment_count>5</comment_count>
      <attachid>82159</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-11 13:42:04 -0800</bug_when>
    <thetext>Comment on attachment 82159
Patch

I think the cq might be sick.  It did that to me yesterday as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350003</commentid>
    <comment_count>6</comment_count>
      <attachid>82159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-11 14:03:24 -0800</bug_when>
    <thetext>Comment on attachment 82159
Patch

Clearing flags on attachment: 82159

Committed r78367: &lt;http://trac.webkit.org/changeset/78367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350004</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-11 14:03:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82159</attachid>
            <date>2011-02-11 12:25:23 -0800</date>
            <delta_ts>2011-02-11 14:03:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54304-20110211122522.patch</filename>
            <type>text/plain</type>
            <size>2085</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgzNDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmOWYzOWY5OTA3MzQyOWNh
Zjk0ZmExMTFkZGVkMjNhYTIzZjNkOWMwLi45YTg3MjljNjQyODRhN2ZiM2NjYTRmZDBlZDUyMTBm
NDRiN2MzMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDItMTEgIEFkYW0g
S2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2hlY2sgZm9yIGVtcHR5IHNjaGVtZSBiZWZvcmUgYWNjZXNz
aW5nIFVSTFNjaGVtZU1hcHMgaW4gU2NoZW1lUmVnaXN0cnkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MzA0CisKKyAgICAgICAgVGhpcyBhdm9pZHMg
cG90ZW50aWFsIGNyYXNoZXMgaW4gSGFzaE1hcCwgYXMgV1RGJ3MgU3RyaW5nSGFzaCBkb2Vzbid0
CisgICAgICAgIGFjY2VwdCBlbXB0eSBTdHJpbmdzLgorCisgICAgICAgICogcGxhdGZvcm0vU2No
ZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnNob3Vs
ZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlbWVSZWdp
c3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y2hlbWVSZWdpc3RyeTo6c2hvdWxkTG9hZFVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudCk6CisKIDIw
MTEtMDItMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3ODMzMS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAppbmRleCAwYTdjYjhjZjRiOWZkY2EwZjVlZmQxZGYz
M2YyZmZhZjc1ZGJiMTJlLi5iOWY0MmU2M2Y5MWQ2YjEzZjg1Yjk2M2ZiZDQ2M2NlODM1YmRiYmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCkBAIC0xMjEs
NiArMTIxLDggQEAgdm9pZCBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNj
ZXNzKGNvbnN0IFN0cmluZyYgc2NoZW1lKQogCiBib29sIFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRU
cmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7CisgICAgaWYg
KHNjaGVtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gc2No
ZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCkuY29udGFpbnMoc2NoZW1lKTsKIH0KIApAQCAtMTQzLDYg
KzE0NSw4IEBAIHZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUo
Y29uc3QgU3RyaW5nJiBzY2hlbWUpCiAKIGJvb2wgU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0
VVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7CisgICAgaWYgKHNjaGVt
ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gc2VjdXJlU2No
ZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAKQEAgLTE1Myw2ICsxNTcsOCBAQCB2b2lkIFNj
aGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChjb25zdCBTdHJp
bmcmIHNjaGVtZSkKIAogYm9vbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkTG9hZFVSTFNjaGVtZUFz
RW1wdHlEb2N1bWVudChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKKyAgICBpZiAoc2NoZW1lLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBlbXB0eURvY3VtZW50
U2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>