<?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>228108</bug_id>
          
          <creation_ts>2021-07-20 09:03:45 -0700</creation_ts>
          <short_desc>Protect m_data when iterating in CachedRawResource::didAddClient</short_desc>
          <delta_ts>2021-09-09 13:26:04 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230121</see_also>
          <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>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1778183</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-20 09:03:45 -0700</bug_when>
    <thetext>Protect m_data when iterating in CachedRawResource::didAddClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778184</commentid>
    <comment_count>1</comment_count>
      <attachid>433876</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-20 09:06:30 -0700</bug_when>
    <thetext>Created attachment 433876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778185</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-20 09:06:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/80716674&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778186</commentid>
    <comment_count>3</comment_count>
      <attachid>433876</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-20 09:12:08 -0700</bug_when>
    <thetext>Comment on attachment 433876
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=433876&amp;action=review

r=me with optional nit fixes.

&gt; Source/WebCore/loader/cache/CachedRawResource.cpp:170
&gt;              if (m_data) {

We could also just do:
if (auto data = m_data) {

and use data below instead of m_data.

&gt; Source/WebCore/loader/cache/CachedRawResource.cpp:171
&gt; +                auto protectedData = RefPtr { m_data };

instead of adding the protector here.

&gt; Source/WebCore/loader/cache/CachedRawResource.cpp:173
&gt; +                    if (!hasClient(*client))

Better safe than sorry indeed.

I know we like early return in WebKit, but when it&apos;s one line life this, I don&apos;t feel like it&apos;s great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778187</commentid>
    <comment_count>4</comment_count>
      <attachid>433877</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-20 09:18:58 -0700</bug_when>
    <thetext>Created attachment 433877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778195</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-20 09:55:05 -0700</bug_when>
    <thetext>Committed r280083 (239808@main): &lt;https://commits.webkit.org/239808@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433877.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792054</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-09 13:10:06 -0700</bug_when>
    <thetext>Sadly, it seems this didn&apos;t do the trick :( &lt;rdar://82936913&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433876</attachid>
            <date>2021-07-20 09:06:30 -0700</date>
            <delta_ts>2021-07-20 09:18:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228108-20210720090629.patch</filename>
            <type>text/plain</type>
            <size>1837</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhmMWQyNWEwZTgzMWZi
MzAxYTM5MzUzZWY3N2YyNWI2ODlmZjExNy4uM2NmNzNhZTM1MTY5ODJlMDA0YTc1NzQ4M2U4MzRj
NGFhYmM0MDI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA3LTIwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdGVj
dCBtX2RhdGEgd2hlbiBpdGVyYXRpbmcgaW4gQ2FjaGVkUmF3UmVzb3VyY2U6OmRpZEFkZENsaWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4MTA4
CisgICAgICAgIDxyZGFyOi8vODA3MTY2NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSSB0aGluayBzb21ldGhpbmcgaXMgZGVzdHJveWluZyBtX2Rh
dGEgd2hlbiBpdHMgc2VnbWVudHMgYXJlIGJlaW5nIGl0ZXJhdGVkLgorICAgICAgICBQcm90ZWN0
IGl0IHNvIGl0IGRvZXNuJ3QgZ2V0IGRlc3Ryb3llZC4KKyAgICAgICAgQWxzbywgdG8gYmUgb24g
dGhlIHNhZmUgc2lkZSwgY2hlY2sgdGhhdCB0aGUgY2xpZW50IGlzIHN0aWxsIGEgY2xpZW50IGJl
Zm9yZSB1c2luZyBpdC4KKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50
KToKKwogMjAyMS0wNy0xOSAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtjc3MtZ3JpZF0gSW1hZ2VzIGFzIGdyaWQgaXRlbXMgc2hvdWxkIHVzZSB0aGUgb3ZlcnJpZGlu
Z0xvZ2ljYWxIZWlnaHQgd2hlbiBkZWZpbmVkIHRvIGNvbXB1dGUgdGhlIGxvZ2ljYWwgd2lkdGgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
CmluZGV4IDE1MzUzZTE3ZjE3NGEyOWM0OTI0Yzc4OGU5ZTBlNTcwODAwZjA5NTEuLmJmYzFlNmE0
ODU0MTczYzliN2IxODU0NzdkOWM2OGQ0YTA0YTUzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMTY4LDcgKzE2OCwxMCBA
QCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGll
bnQmIGMpCiAgICAgICAgICAgICBpZiAoIWhhc0NsaWVudCgqY2xpZW50KSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICBpZiAobV9kYXRhKSB7CisgICAgICAgICAgICAgICAg
YXV0byBwcm90ZWN0ZWREYXRhID0gUmVmUHRyIHsgbV9kYXRhIH07CiAgICAgICAgICAgICAgICAg
bV9kYXRhLT5mb3JFYWNoU2VnbWVudChbJl0oYXV0byYgc2VnbWVudCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIWhhc0NsaWVudCgqY2xpZW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgY2xpZW50LT5kYXRhUmVjZWl2ZWQoKnRoaXMs
IHNlZ21lbnQuZGF0YSgpLCBzZWdtZW50LnNpemUoKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433877</attachid>
            <date>2021-07-20 09:18:58 -0700</date>
            <delta_ts>2021-07-20 09:55:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228108-20210720091857.patch</filename>
            <type>text/plain</type>
            <size>2063</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhmMWQyNWEwZTgzMWZi
MzAxYTM5MzUzZWY3N2YyNWI2ODlmZjExNy4uMTViYzZkYTkzNjMxNDQ1NzRkZDRlM2E2MDZlOTg3
ZjQ5ZWIxOGFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA3LTIwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdGVj
dCBtX2RhdGEgd2hlbiBpdGVyYXRpbmcgaW4gQ2FjaGVkUmF3UmVzb3VyY2U6OmRpZEFkZENsaWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4MTA4
CisgICAgICAgIDxyZGFyOi8vODA3MTY2NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCisKKyAgICAgICAgSSB0aGluayBzb21ldGhpbmcgaXMgZGVzdHJveWluZyBtX2RhdGEg
d2hlbiBpdHMgc2VnbWVudHMgYXJlIGJlaW5nIGl0ZXJhdGVkLgorICAgICAgICBQcm90ZWN0IGl0
IHNvIGl0IGRvZXNuJ3QgZ2V0IGRlc3Ryb3llZC4KKyAgICAgICAgQWxzbywgdG8gYmUgb24gdGhl
IHNhZmUgc2lkZSwgY2hlY2sgdGhhdCB0aGUgY2xpZW50IGlzIHN0aWxsIGEgY2xpZW50IGJlZm9y
ZSB1c2luZyBpdC4KKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KToK
KwogMjAyMS0wNy0xOSAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtj
c3MtZ3JpZF0gSW1hZ2VzIGFzIGdyaWQgaXRlbXMgc2hvdWxkIHVzZSB0aGUgb3ZlcnJpZGluZ0xv
Z2ljYWxIZWlnaHQgd2hlbiBkZWZpbmVkIHRvIGNvbXB1dGUgdGhlIGxvZ2ljYWwgd2lkdGgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmlu
ZGV4IDE1MzUzZTE3ZjE3NGEyOWM0OTI0Yzc4OGU5ZTBlNTcwODAwZjA5NTEuLmU5YWI5ZDY0NTkw
NDVlYTljNTJmY2IyNzVhZDcwM2VjNzZlMWMxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMTY3LDkgKzE2NywxMCBAQCB2
b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQm
IGMpCiAgICAgICAgIGF1dG8gcmVzcG9uc2VQcm9jZXNzZWRIYW5kbGVyID0gW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjbGllbnRdIHsKICAgICAgICAgICAg
IGlmICghaGFzQ2xpZW50KCpjbGllbnQpKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIGlmIChtX2RhdGEpIHsKLSAgICAgICAgICAgICAgICBtX2RhdGEtPmZvckVhY2hTZWdt
ZW50KFsmXShhdXRvJiBzZWdtZW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNsaWVudC0+ZGF0
YVJlY2VpdmVkKCp0aGlzLCBzZWdtZW50LmRhdGEoKSwgc2VnbWVudC5zaXplKCkpOworICAgICAg
ICAgICAgaWYgKGF1dG8gZGF0YSA9IG1fZGF0YSkgeworICAgICAgICAgICAgICAgIGRhdGEtPmZv
ckVhY2hTZWdtZW50KFsmXShhdXRvJiBzZWdtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChoYXNDbGllbnQoKmNsaWVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQtPmRh
dGFSZWNlaXZlZCgqdGhpcywgc2VnbWVudC5kYXRhKCksIHNlZ21lbnQuc2l6ZSgpKTsKICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghaGFzQ2xpZW50
KCpjbGllbnQpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>