<?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>169620</bug_id>
          
          <creation_ts>2017-03-14 12:12:25 -0700</creation_ts>
          <short_desc>Add a null check in VMTraps::willDestroyVM() to handle a race condition.</short_desc>
          <delta_ts>2017-03-14 12:30:06 -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>JavaScriptCore</component>
          <version>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287726</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-14 12:12:25 -0700</bug_when>
    <thetext>There exists a race between VMTraps::willDestroyVM() (which removed SignalSenders from its m_signalSenders list) and SignalSender::send() (which removes itself from the list).  In the event that SignalSender::send() removes itself between the time that VMTraps::willDestroyVM() checks if m_signalSenders is empty and the time it takes a sender from m_signalSenders, VMTraps::willDestroyVM() may end up with a NULL sender pointer.  The fix is add the missing null check before using the sender pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287729</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-14 12:16:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/31022072&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287734</commentid>
    <comment_count>2</comment_count>
      <attachid>304411</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-14 12:19:42 -0700</bug_when>
    <thetext>Created attachment 304411
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287740</commentid>
    <comment_count>3</comment_count>
      <attachid>304412</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-14 12:22:58 -0700</bug_when>
    <thetext>Created attachment 304412
proposed patch: rebased to ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287741</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-14 12:30:06 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r213930: &lt;http://trac.webkit.org/r213930&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304411</attachid>
            <date>2017-03-14 12:19:42 -0700</date>
            <delta_ts>2017-03-14 12:22:58 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-169620.patch</filename>
            <type>text/plain</type>
            <size>2908</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEzOTIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE3LTAzLTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYSBudWxsIGNoZWNrIGluIFZNVHJhcHM6OndpbGxEZXN0cm95Vk0oKSB0byBoYW5kbGUgYSBy
YWNlIGNvbmRpdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2OTYyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZXJlIGV4aXN0cyBhIHJhY2UgYmV0d2VlbiBWTVRyYXBzOjp3aWxsRGVzdHJveVZN
KCkgKHdoaWNoIHJlbW92ZWQgU2lnbmFsU2VuZGVycworICAgICAgICBmcm9tIGl0cyBtX3NpZ25h
bFNlbmRlcnMgbGlzdCkgYW5kIFNpZ25hbFNlbmRlcjo6c2VuZCgpICh3aGljaCByZW1vdmVzIGl0
c2VsZgorICAgICAgICBmcm9tIHRoZSBsaXN0KS4gIEluIHRoZSBldmVudCB0aGF0IFNpZ25hbFNl
bmRlcjo6c2VuZCgpIHJlbW92ZXMgaXRzZWxmIGJldHdlZW4KKyAgICAgICAgdGhlIHRpbWUgdGhh
dCBWTVRyYXBzOjp3aWxsRGVzdHJveVZNKCkgY2hlY2tzIGlmIG1fc2lnbmFsU2VuZGVycyBpcyBl
bXB0eSBhbmQgdGhlCisgICAgICAgIHRpbWUgaXQgdGFrZXMgYSBzZW5kZXIgZnJvbSBtX3NpZ25h
bFNlbmRlcnMsIFZNVHJhcHM6OndpbGxEZXN0cm95Vk0oKSBtYXkgZW5kIHVwCisgICAgICAgIHdp
dGggYSBOVUxMIHNlbmRlciBwb2ludGVyLiAgVGhlIGZpeCBpcyBhZGQgdGhlIG1pc3NpbmcgbnVs
bCBjaGVjayBiZWZvcmUgdXNpbmcKKyAgICAgICAgdGhlIHNlbmRlciBwb2ludGVyLgorCisgICAg
ICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1UcmFwczo6d2lsbERl
c3Ryb3lWTSk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmZpcmVUcmFwKToKKyAgICAgICAgKiBy
dW50aW1lL1ZNVHJhcHMuaDoKKwogMjAxNy0wMy0xNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgR2FyZGVuaW5nOiBTcGVjdWxhdGl2ZSBidWlsZCBmaXggZm9yIENM
b29wIGFmdGVyIHIyMTM4ODYuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmNwcAkocmV2aXNpb24gMjEzODgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MCw2ICs0NTAsOCBAQCBWTVRy
YXBzOjpWTVRyYXBzKCkKIAogdm9pZCBWTVRyYXBzOjp3aWxsRGVzdHJveVZNKCkKIHsKKyAgICBt
X2lzU2h1dHRpbmdEb3duID0gdHJ1ZTsKKyAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOwogI2lm
IEVOQUJMRShTSUdOQUxfQkFTRURfVk1fVFJBUFMpCiAgICAgd2hpbGUgKCFtX3NpZ25hbFNlbmRl
cnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFJlZlB0cjxTaWduYWxTZW5kZXI+IHNlbmRlcjsKQEAg
LTQ2MCw5ICs0NjIsMTIgQEAgdm9pZCBWTVRyYXBzOjp3aWxsRGVzdHJveVZNKCkKICAgICAgICAg
ICAgIC8vIHRvIGFjcXVpcmUgdGhlc2UgbG9ja3MgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLgogICAg
ICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwogICAgICAgICAgICAgc2Vu
ZGVyID0gbV9zaWduYWxTZW5kZXJzLnRha2VBbnkoKTsKKyAgICAgICAgICAgIGlmICghc2VuZGVy
KQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHNlbmRlci0+d2ls
bERlc3Ryb3lWTSgpOwogICAgIH0KKyAgICBBU1NFUlQobV9zaWduYWxTZW5kZXJzLmlzRW1wdHko
KSk7CiAjZW5kaWYKIH0KIApAQCAtNTIzLDYgKzUyOCw3IEBAIHZvaWQgVk1UcmFwczo6ZmlyZVRy
YXAoVk1UcmFwczo6RXZlbnRUeXAKICAgICBBU1NFUlQoIXZtKCkuY3VycmVudFRocmVhZElzSG9s
ZGluZ0FQSUxvY2soKSk7CiAgICAgewogICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
bG9jayk7CisgICAgICAgIEFTU0VSVCghbV9pc1NodXR0aW5nRG93bik7CiAgICAgICAgIHNldFRy
YXBGb3JFdmVudChsb2NrZXIsIGV2ZW50VHlwZSk7CiAgICAgICAgIG1fbmVlZFRvSW52YWxpZGF0
ZWRDb2RlQmxvY2tzID0gdHJ1ZTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTVRyYXBzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5oCShyZXZpc2lvbiAyMTM4ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsxNjcsNyBAQCBw
cml2YXRlOgogICAgICAgICBCaXRGaWVsZCBtX3RyYXBzQml0RmllbGQ7CiAgICAgfTsKICAgICBi
b29sIG1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aXNTaHV0dGluZ0Rvd24geyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKFNJR05BTF9CQVNFRF9WTV9U
UkFQUykKICAgICBIYXNoU2V0PFJlZlB0cjxTaWduYWxTZW5kZXI+PiBtX3NpZ25hbFNlbmRlcnM7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304412</attachid>
            <date>2017-03-14 12:22:58 -0700</date>
            <delta_ts>2017-03-14 12:24:58 -0700</delta_ts>
            <desc>proposed patch: rebased to ToT.</desc>
            <filename>bug-169620.patch</filename>
            <type>text/plain</type>
            <size>2908</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEzOTI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE3LTAzLTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYSBudWxsIGNoZWNrIGluIFZNVHJhcHM6OndpbGxEZXN0cm95Vk0oKSB0byBoYW5kbGUgYSBy
YWNlIGNvbmRpdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2OTYyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZXJlIGV4aXN0cyBhIHJhY2UgYmV0d2VlbiBWTVRyYXBzOjp3aWxsRGVzdHJveVZN
KCkgKHdoaWNoIHJlbW92ZWQgU2lnbmFsU2VuZGVycworICAgICAgICBmcm9tIGl0cyBtX3NpZ25h
bFNlbmRlcnMgbGlzdCkgYW5kIFNpZ25hbFNlbmRlcjo6c2VuZCgpICh3aGljaCByZW1vdmVzIGl0
c2VsZgorICAgICAgICBmcm9tIHRoZSBsaXN0KS4gIEluIHRoZSBldmVudCB0aGF0IFNpZ25hbFNl
bmRlcjo6c2VuZCgpIHJlbW92ZXMgaXRzZWxmIGJldHdlZW4KKyAgICAgICAgdGhlIHRpbWUgdGhh
dCBWTVRyYXBzOjp3aWxsRGVzdHJveVZNKCkgY2hlY2tzIGlmIG1fc2lnbmFsU2VuZGVycyBpcyBl
bXB0eSBhbmQgdGhlCisgICAgICAgIHRpbWUgaXQgdGFrZXMgYSBzZW5kZXIgZnJvbSBtX3NpZ25h
bFNlbmRlcnMsIFZNVHJhcHM6OndpbGxEZXN0cm95Vk0oKSBtYXkgZW5kIHVwCisgICAgICAgIHdp
dGggYSBOVUxMIHNlbmRlciBwb2ludGVyLiAgVGhlIGZpeCBpcyBhZGQgdGhlIG1pc3NpbmcgbnVs
bCBjaGVjayBiZWZvcmUgdXNpbmcKKyAgICAgICAgdGhlIHNlbmRlciBwb2ludGVyLgorCisgICAg
ICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1UcmFwczo6d2lsbERl
c3Ryb3lWTSk6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OmZpcmVUcmFwKToKKyAgICAgICAgKiBy
dW50aW1lL1ZNVHJhcHMuaDoKKwogMjAxNy0wMy0xNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgR2FyZGVuaW5nOiBTcGVjdWxhdGl2ZSBidWlsZCBmaXggZm9yIENM
b29wIGFmdGVyIHIyMTM4ODYuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TVRyYXBzLmNwcAkocmV2aXNpb24gMjEzOTI3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMyw2ICs0MDMsOCBAQCBWTVRy
YXBzOjpWTVRyYXBzKCkKIAogdm9pZCBWTVRyYXBzOjp3aWxsRGVzdHJveVZNKCkKIHsKKyAgICBt
X2lzU2h1dHRpbmdEb3duID0gdHJ1ZTsKKyAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOwogI2lm
IEVOQUJMRShTSUdOQUxfQkFTRURfVk1fVFJBUFMpCiAgICAgd2hpbGUgKCFtX3NpZ25hbFNlbmRl
cnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFJlZlB0cjxTaWduYWxTZW5kZXI+IHNlbmRlcjsKQEAg
LTQxMyw5ICs0MTUsMTIgQEAgdm9pZCBWTVRyYXBzOjp3aWxsRGVzdHJveVZNKCkKICAgICAgICAg
ICAgIC8vIHRvIGFjcXVpcmUgdGhlc2UgbG9ja3MgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLgogICAg
ICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwogICAgICAgICAgICAgc2Vu
ZGVyID0gbV9zaWduYWxTZW5kZXJzLnRha2VBbnkoKTsKKyAgICAgICAgICAgIGlmICghc2VuZGVy
KQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHNlbmRlci0+d2ls
bERlc3Ryb3lWTSgpOwogICAgIH0KKyAgICBBU1NFUlQobV9zaWduYWxTZW5kZXJzLmlzRW1wdHko
KSk7CiAjZW5kaWYKIH0KIApAQCAtNDc2LDYgKzQ4MSw3IEBAIHZvaWQgVk1UcmFwczo6ZmlyZVRy
YXAoVk1UcmFwczo6RXZlbnRUeXAKICAgICBBU1NFUlQoIXZtKCkuY3VycmVudFRocmVhZElzSG9s
ZGluZ0FQSUxvY2soKSk7CiAgICAgewogICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
bG9jayk7CisgICAgICAgIEFTU0VSVCghbV9pc1NodXR0aW5nRG93bik7CiAgICAgICAgIHNldFRy
YXBGb3JFdmVudChsb2NrZXIsIGV2ZW50VHlwZSk7CiAgICAgICAgIG1fbmVlZFRvSW52YWxpZGF0
ZWRDb2RlQmxvY2tzID0gdHJ1ZTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTVRyYXBzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5oCShyZXZpc2lvbiAyMTM5MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsxNjcsNyBAQCBw
cml2YXRlOgogICAgICAgICBCaXRGaWVsZCBtX3RyYXBzQml0RmllbGQ7CiAgICAgfTsKICAgICBi
b29sIG1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aXNTaHV0dGluZ0Rvd24geyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKFNJR05BTF9CQVNFRF9WTV9U
UkFQUykKICAgICBIYXNoU2V0PFJlZlB0cjxTaWduYWxTZW5kZXI+PiBtX3NpZ25hbFNlbmRlcnM7
Cg==
</data>
<flag name="review"
          id="325941"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>