<?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>62304</bug_id>
          
          <creation_ts>2011-06-08 12:10:12 -0700</creation_ts>
          <short_desc>PingLoader dtor has NULL dereference</short_desc>
          <delta_ts>2011-06-09 10:51:43 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="David Tapuska">dave+webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>dbates</cc>
    
    <cc>fishd</cc>
    
    <cc>staikos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>417394</commentid>
    <comment_count>0</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2011-06-08 12:10:12 -0700</bug_when>
    <thetext>PingLoader::~PingLoader has a potential null dereference if the ResourceHandle failed during creation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417402</commentid>
    <comment_count>1</comment_count>
      <attachid>96455</attachid>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2011-06-08 12:15:50 -0700</bug_when>
    <thetext>Created attachment 96455
Check for valid ref before calling cancel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417408</commentid>
    <comment_count>2</comment_count>
      <attachid>96459</attachid>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2011-06-08 12:20:43 -0700</bug_when>
    <thetext>Created attachment 96459
Check for valid ref before calling cancel

Sorry PrepareChangeLog munged the ChangeLog with the git commit incorrectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417630</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-08 15:50:20 -0700</bug_when>
    <thetext>Can a regression test e made for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417971</commentid>
    <comment_count>4</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2011-06-09 06:24:17 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Can a regression test e made for this?

I don&apos;t have a reproduction step. The fix for this crash was mined from coredumps on our platform. For a regression test we&apos;d need to somehow fudge that the ResourceHandle failed to create a resource; and the ResourceHandle::create is platform specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418035</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-09 08:46:55 -0700</bug_when>
    <thetext>In that case, how did you decide that this is a bug in PingLoader destructor, and not in ResourceHandle::start() on your platform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418039</commentid>
    <comment_count>6</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2011-06-09 08:52:16 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; In that case, how did you decide that this is a bug in PingLoader destructor, and not in ResourceHandle::start() on your platform?

Checkout the ResourceLoader.cpp and MainResourceLoader.cpp and you&apos;ll find that anyone that uses ResourceHandle::create will check that the value returned is a valid ref before accessing it.

ResourceHandle::create has a NULL return path depending on the return code from newHandle-&gt;start(...) the start implementation is the platform specific code I referred to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418047</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-09 09:05:56 -0700</bug_when>
    <thetext>ResourceHandle::start() is expected to return false when invoked on a detached page. This shouldn&apos;t happen with PingLoader - it&apos;s created in very specific and controlled circumstances. So, it&apos;s different from any other caller of ResourceHandle::create().

Does PingLoader actually work on your platform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418060</commentid>
    <comment_count>8</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2011-06-09 09:32:21 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; ResourceHandle::start() is expected to return false when invoked on a detached page. This shouldn&apos;t happen with PingLoader - it&apos;s created in very specific and controlled circumstances. So, it&apos;s different from any other caller of ResourceHandle::create().
&gt; 
&gt; Does PingLoader actually work on your platform?

ResoruceHandle::start() can return false for other reasons as well. Not just on a detached page.

For example in the ResourceHandleWin.cpp if InternetConnectW fails; start will return false and then the ResourceHandle::create will return 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418071</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-09 09:47:15 -0700</bug_when>
    <thetext>ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418081</commentid>
    <comment_count>10</comment_count>
      <attachid>96459</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-06-09 10:12:33 -0700</bug_when>
    <thetext>Comment on attachment 96459
Check for valid ref before calling cancel

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418103</commentid>
    <comment_count>11</comment_count>
      <attachid>96459</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-09 10:49:46 -0700</bug_when>
    <thetext>Comment on attachment 96459
Check for valid ref before calling cancel

Clearing flags on attachment: 96459

Committed r88458: &lt;http://trac.webkit.org/changeset/88458&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418104</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-09 10:49:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418106</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-09 10:51:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/9581084&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96455</attachid>
            <date>2011-06-08 12:15:50 -0700</date>
            <delta_ts>2011-06-08 12:20:43 -0700</delta_ts>
            <desc>Check for valid ref before calling cancel</desc>
            <filename>PingLoader.patch.txt</filename>
            <type>text/plain</type>
            <size>1795</size>
            <attacher name="David Tapuska">dave+webkit</attacher>
            
              <data encoding="base64">Y29tbWl0IDk1ZThhNWQzNzMxMGQ4ZjgzMDE1ZjM3Y2ZjNzFiOTYxMTlhZmEwYWIKQXV0aG9yOiBE
YXZlIFRhcHVza2EgPGR0YXB1c2thQHJpbS5jb20+CkRhdGU6ICAgV2VkIEp1biA4IDE1OjA5OjA0
IDIwMTEgLTA0MDAKCiAgICAyMDExLTA2LTA4ICBEYXZlIFRhcHVza2EgIDxkdGFwdXNrYUByaW0u
Y29tPgogICAgCiAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogICAgCiAg
ICAgICAgICAgIFBpbmdMb2FkZXIgZGVzdHJ1Y3RvciBjb3VsZCBkZXJlZmVyZW5jZSAwIGlmIHRo
ZSBSZXNvdXJjZQogICAgICAgICAgICBIYW5kbGUgY3JlYXRpb24gZmFpbGVkLgogICAgCiAgICAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMwNAogICAg
CiAgICAgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgogICAgICAgICAgICAoV2ViQ29y
ZTo6UGluZ0xvYWRlcjo6flBpbmdMb2FkZXIpOgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZDcwMDVjLi5mMTBk
YmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDYtMDggIERhdmUgVGFwdXNr
YSAgPGR0YXB1c2thQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgMjAxMS0wNi0wOCAgRGF2ZSBUYXB1c2thICA8ZHRhcHVza2FAcmltLmNv
bT4KKworICAgICAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICAgICAgICAgUGluZ0xvYWRlciBkZXN0cnVjdG9yIGNvdWxkIGRlcmVmZXJlbmNlIDAgaWYg
dGhlIFJlc291cmNlCisgICAgICAgICAgICAgICAgSGFuZGxlIGNyZWF0aW9uIGZhaWxlZC4KKwor
ICAgICAgICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MjMwNAorCisgICAgICAgICAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAg
ICAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6On5QaW5nTG9hZGVyKToKKworICAgICAgICBO
ZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6flBpbmdMb2FkZXIpOgorCiAyMDExLTA2LTA4
ICBNaWtvxYJhaiBNYcWCZWNraSAgPG0ubWFsZWNraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3Bw
CmluZGV4IDk3NDUyNzMuLjAyN2FkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5j
cHAKQEAgLTEyNyw3ICsxMjcsOCBAQCBQaW5nTG9hZGVyOjpQaW5nTG9hZGVyKEZyYW1lKiBmcmFt
ZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogCiBQaW5nTG9hZGVyOjp+UGluZ0xvYWRlcigp
CiB7Ci0gICAgbV9oYW5kbGUtPmNhbmNlbCgpOworICAgIGlmIChtX2hhbmRsZSkKKyAgICAgICAg
bV9oYW5kbGUtPmNhbmNlbCgpOwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96459</attachid>
            <date>2011-06-08 12:20:43 -0700</date>
            <delta_ts>2011-06-09 10:49:46 -0700</delta_ts>
            <desc>Check for valid ref before calling cancel</desc>
            <filename>PingLoader.patch.txt</filename>
            <type>text/plain</type>
            <size>1482</size>
            <attacher name="David Tapuska">dave+webkit</attacher>
            
              <data encoding="base64">Y29tbWl0IDFiNzNiOWM2ZGRmMDZjMWMwMzUwYTI0MzJkNDJjNmQ5ZjE0ZGFhNmEKQXV0aG9yOiBE
YXZlIFRhcHVza2EgPGR0YXB1c2thQHJpbS5jb20+CkRhdGU6ICAgV2VkIEp1biA4IDE1OjA5OjA0
IDIwMTEgLTA0MDAKCiAgICAyMDExLTA2LTA4ICBEYXZlIFRhcHVza2EgIDxkdGFwdXNrYUByaW0u
Y29tPgogICAgCiAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogICAgCiAg
ICAgICAgICAgIFBpbmdMb2FkZXIgZGVzdHJ1Y3RvciBjb3VsZCBkZXJlZmVyZW5jZSAwIGlmIHRo
ZSBSZXNvdXJjZQogICAgICAgICAgICBIYW5kbGUgY3JlYXRpb24gZmFpbGVkLgogICAgCiAgICAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMwNAogICAg
CiAgICAgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgogICAgICAgICAgICAoV2ViQ29y
ZTo6UGluZ0xvYWRlcjo6flBpbmdMb2FkZXIpOgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZDcwMDVjLi43OGU4
NjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMDggIERhdmUgVGFwdXNr
YSAgPGR0YXB1c2thQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUGluZ0xvYWRlciBkZXN0cnVjdG9yIGNvdWxkIGRlcmVmZXJlbmNlIDAg
aWYgdGhlIFJlc291cmNlCisgICAgICAgIEhhbmRsZSBjcmVhdGlvbiBmYWlsZWQuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzA0CisKKyAgICAg
ICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVy
Ojp+UGluZ0xvYWRlcik6CisKIDIwMTEtMDYtMDggIE1pa2/FgmFqIE1hxYJlY2tpICA8bS5tYWxl
Y2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggOTc0NTI3My4uMDI3YWRlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApAQCAtMTI3LDcgKzEyNyw4IEBAIFBpbmdM
b2FkZXI6OlBpbmdMb2FkZXIoRnJhbWUqIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
CiAKIFBpbmdMb2FkZXI6On5QaW5nTG9hZGVyKCkKIHsKLSAgICBtX2hhbmRsZS0+Y2FuY2VsKCk7
CisgICAgaWYgKG1faGFuZGxlKQorICAgICAgICBtX2hhbmRsZS0+Y2FuY2VsKCk7CiB9CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>