<?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>147023</bug_id>
          
          <creation_ts>2015-07-16 16:02:00 -0700</creation_ts>
          <short_desc>RegExp::match() should set m_state to ByteCode if compilation fails.</short_desc>
          <delta_ts>2015-07-16 19:30:32 -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>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>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>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mmirman</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>1110014</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-16 16:02:00 -0700</bug_when>
    <thetext>A RegExp has a YarrCodeBlock that has 4 MacroAssemblerCodeRefs for compiled code.  If one of these compilations succeeds, RegExp::m_state will be set to JITCode.  Subsequently, if RegExp tries to compile another one of these but fails, m_state will be left untouched i.e. it still says JITCode.  As a result, when RegExp::match() later tries to execute the non-existant compiled code, it will crash.  The fix is to downgrade m_state to ByteCode if RegExp ever fails to compile.

This failure should be rare.  We&apos;ll do the minimal work here to fix the issue and keep an eye on the perf bots.  If perf regresses, we can do some optimization work then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110015</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-16 16:03:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/21764196&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110019</commentid>
    <comment_count>2</comment_count>
      <attachid>256937</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-16 16:13:28 -0700</bug_when>
    <thetext>Created attachment 256937
the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110024</commentid>
    <comment_count>3</comment_count>
      <attachid>256937</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-07-16 16:24:26 -0700</bug_when>
    <thetext>Comment on attachment 256937
the fix.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110061</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-16 19:30:32 -0700</bug_when>
    <thetext>I&apos;ve run the jsc and layout tests and did not see any regressions.

Landed in r186920: &lt;http://trac.webkit.org/r186920&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256937</attachid>
            <date>2015-07-16 16:13:28 -0700</date>
            <delta_ts>2015-07-16 16:24:26 -0700</delta_ts>
            <desc>the fix.</desc>
            <filename>bug-147023.patch</filename>
            <type>text/plain</type>
            <size>3437</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg2OTEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTA3LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWdFeHA6Om1hdGNoKCkgc2hvdWxkIHNldCBtX3N0YXRlIHRvIEJ5dGVDb2RlIGlmIGNvbXBpbGF0
aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ3MDIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQSBSZWdFeHAgaGFzIGEgWWFyckNvZGVCbG9jayB0aGF0IGhhcyA0IE1hY3JvQXNzZW1ibGVy
Q29kZVJlZnMgZm9yIGNvbXBpbGVkIGNvZGUuCisgICAgICAgIElmIG9uZSBvZiB0aGVzZSBjb21w
aWxhdGlvbnMgc3VjY2VlZHMsIFJlZ0V4cDo6bV9zdGF0ZSB3aWxsIGJlIHNldCB0byBKSVRDb2Rl
LgorICAgICAgICBTdWJzZXF1ZW50bHksIGlmIFJlZ0V4cCB0cmllcyB0byBjb21waWxlIGFub3Ro
ZXIgb25lIG9mIHRoZXNlIGJ1dCBmYWlscywgbV9zdGF0ZQorICAgICAgICB3aWxsIGJlIGxlZnQg
dW50b3VjaGVkIGkuZS4gaXQgc3RpbGwgc2F5cyBKSVRDb2RlLiAgQXMgYSByZXN1bHQsIHdoZW4K
KyAgICAgICAgUmVnRXhwOjptYXRjaCgpIGxhdGVyIHRyaWVzIHRvIGV4ZWN1dGUgdGhlIG5vbi1l
eGlzdGFudCBjb21waWxlZCBjb2RlLCBpdCB3aWxsCisgICAgICAgIGNyYXNoLgorCisgICAgICAg
IFRoZSBmaXggaXMgdG8gZG93bmdyYWRlIG1fc3RhdGUgdG8gQnl0ZUNvZGUgaWYgUmVnRXhwIGV2
ZXIgZmFpbHMgdG8gY29tcGlsZS4KKyAgICAgICAgVGhpcyBmYWlsdXJlIHNob3VsZCBiZSByYXJl
LiAgV2UnbGwgZG8gdGhlIG1pbmltYWwgd29yayBoZXJlIHRvIGZpeCB0aGUgaXNzdWUgYW5kCisg
ICAgICAgIGtlZXAgYW4gZXllIG9uIHRoZSBwZXJmIGJvdHMuICBJZiBwZXJmIHJlZ3Jlc3Nlcywg
d2UgY2FuIGRvIHNvbWUgb3B0aW1pemF0aW9uIHdvcmsgdGhlbi4KKworICAgICAgICBUaGlzIGlz
c3VlIGlzIGRpZmZpY3VsdCB0byB0ZXN0IGZvciBzaW5jZSBpdCBlaXRoZXIgcmVxdWlyZXMgYSBs
b3cgbWVtb3J5IGNvbmRpdGlvbgorICAgICAgICB0byB0cmlnZ2VyIGEgZmFpbGVkIFJlZ0V4cCBj
b21waWxhdGlvbiBhdCB0aGUgcmlnaHQgbW9tZW50LCBvciBmb3IgdGhlIFJlZ0V4cCB0bworICAg
ICAgICBzdWNjZWVkIGNvbXBpbGF0aW9uIGluIHRoZSBNYXRjaGVkT25seSBtb2RlIGJ1dCBmYWls
IGluIEluY2x1ZGVTdWJwYXR0ZXJucyBtb2RlLgorICAgICAgICBJbnN0ZWFkLCBJIG1hbnVhbGx5
IHRlc3RlZCBpdCBieSBpbnN0cnVtZW50aW5nIFJlZ0V4cDo6Y29tcGlsZSgpIHRvIGZhaWwgb25j
ZSBpbiBldmVyeQorICAgICAgICAxMCBjb21waWxhdGlvbiBhdHRlbXB0cy4KKworICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjpjb21waWxlKToKKyAg
ICAgICAgKEpTQzo6UmVnRXhwOjpjb21waWxlTWF0Y2hPbmx5KToKKwogMjAxNS0wNy0xNSAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBGaXggYXJt
djcgYnVpbGQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAJ
KHJldmlzaW9uIDE4NjgyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4OSwyMiArMjg5LDE2IEBAIHZvaWQgUmVnRXhwOjpj
b21waWxlKFZNKiB2bSwgWWFycjo6WWFyckMKICNpZiBFTkFCTEUoWUFSUl9KSVQpCiAgICAgaWYg
KCFwYXR0ZXJuLm1fY29udGFpbnNCYWNrcmVmZXJlbmNlcyAmJiAhcGF0dGVybi5jb250YWluc1Vu
c2lnbmVkTGVuZ3RoUGF0dGVybigpICYmIHZtLT5jYW5Vc2VSZWdFeHBKSVQoKSkgewogICAgICAg
ICBZYXJyOjpqaXRDb21waWxlKHBhdHRlcm4sIGNoYXJTaXplLCB2bSwgbV9yZWdFeHBKSVRDb2Rl
KTsKLSNpZiBFTkFCTEUoWUFSUl9KSVRfREVCVUcpCi0gICAgICAgIGlmICghbV9yZWdFeHBKSVRD
b2RlLmlzRmFsbEJhY2soKSkKLSAgICAgICAgICAgIG1fc3RhdGUgPSBKSVRDb2RlOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBtX3N0YXRlID0gQnl0ZUNvZGU7Ci0jZWxzZQogICAgICAgICBp
ZiAoIW1fcmVnRXhwSklUQ29kZS5pc0ZhbGxCYWNrKCkpIHsKICAgICAgICAgICAgIG1fc3RhdGUg
PSBKSVRDb2RlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0jZW5kaWYKICAgICB9
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShjaGFyU2l6ZSk7CiAjZW5kaWYKIAorICAgIG1fc3Rh
dGUgPSBCeXRlQ29kZTsKICAgICBtX3JlZ0V4cEJ5dGVjb2RlID0gWWFycjo6Ynl0ZUNvbXBpbGUo
cGF0dGVybiwgJnZtLT5tX3JlZ0V4cEFsbG9jYXRvcik7CiB9CiAKQEAgLTQxNCwyMiArNDA4LDE2
IEBAIHZvaWQgUmVnRXhwOjpjb21waWxlTWF0Y2hPbmx5KFZNKiB2bSwgWWEKICNpZiBFTkFCTEUo
WUFSUl9KSVQpCiAgICAgaWYgKCFwYXR0ZXJuLm1fY29udGFpbnNCYWNrcmVmZXJlbmNlcyAmJiAh
cGF0dGVybi5jb250YWluc1Vuc2lnbmVkTGVuZ3RoUGF0dGVybigpICYmIHZtLT5jYW5Vc2VSZWdF
eHBKSVQoKSkgewogICAgICAgICBZYXJyOjpqaXRDb21waWxlKHBhdHRlcm4sIGNoYXJTaXplLCB2
bSwgbV9yZWdFeHBKSVRDb2RlLCBZYXJyOjpNYXRjaE9ubHkpOwotI2lmIEVOQUJMRShZQVJSX0pJ
VF9ERUJVRykKLSAgICAgICAgaWYgKCFtX3JlZ0V4cEpJVENvZGUuaXNGYWxsQmFjaygpKQotICAg
ICAgICAgICAgbV9zdGF0ZSA9IEpJVENvZGU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1f
c3RhdGUgPSBCeXRlQ29kZTsKLSNlbHNlCiAgICAgICAgIGlmICghbV9yZWdFeHBKSVRDb2RlLmlz
RmFsbEJhY2soKSkgewogICAgICAgICAgICAgbV9zdGF0ZSA9IEpJVENvZGU7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLSNlbmRpZgogICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKGNoYXJTaXplKTsKICNlbmRpZgogCisgICAgbV9zdGF0ZSA9IEJ5dGVDb2RlOwogICAgIG1f
cmVnRXhwQnl0ZWNvZGUgPSBZYXJyOjpieXRlQ29tcGlsZShwYXR0ZXJuLCAmdm0tPm1fcmVnRXhw
QWxsb2NhdG9yKTsKIH0KIAo=
</data>
<flag name="review"
          id="282046"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>