<?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>150372</bug_id>
          
          <creation_ts>2015-10-20 14:03:39 -0700</creation_ts>
          <short_desc>YarrPatternConstructor::containsCapturingTerms() should not assume that its terms.size() is greater than 0.</short_desc>
          <delta_ts>2015-10-20 16:39:26 -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>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</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>1135004</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-20 14:03:39 -0700</bug_when>
    <thetext>Patch coming.

&lt;rdar://problem/22771475&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135016</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-20 15:09:14 -0700</bug_when>
    <thetext>I think you can test this with:

var re = /.*(?:(?:(?:(?:(?:(?:)))))).*/;
re.exec(&quot;hello&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135030</commentid>
    <comment_count>2</comment_count>
      <attachid>263624</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-20 15:33:37 -0700</bug_when>
    <thetext>Created attachment 263624
the patch.

Thanks for the repro case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135034</commentid>
    <comment_count>3</comment_count>
      <attachid>263624</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-20 15:51:19 -0700</bug_when>
    <thetext>Comment on attachment 263624
the patch.

For future reference, I much prefer this syntax for backwards unsigned looping:

    for (termIndex = terms.size(); termIndex-- &gt;= endIndex; )

That way, you don&apos;t need to worry about endIndex being 0 or terms.size() being 0.

In this case, we happen to know that neither problem is possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135048</commentid>
    <comment_count>4</comment_count>
      <attachid>263624</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-20 16:39:22 -0700</bug_when>
    <thetext>Comment on attachment 263624
the patch.

Clearing flags on attachment: 263624

Committed r191364: &lt;http://trac.webkit.org/changeset/191364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135049</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-20 16:39:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263624</attachid>
            <date>2015-10-20 15:33:37 -0700</date>
            <delta_ts>2015-10-20 16:39:22 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-150372.patch</filename>
            <type>text/plain</type>
            <size>6194</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxMzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE1LTEwLTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBZ
YXJyUGF0dGVybkNvbnN0cnVjdG9yOjpjb250YWluc0NhcHR1cmluZ1Rlcm1zKCkgc2hvdWxkIG5v
dCBhc3N1bWUgdGhhdCBpdHMgdGVybXMuc2l6ZSgpIGlzIGdyZWF0ZXIgdGhhbiAwLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMzcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB5YXJyL1lhcnJQYXR0
ZXJuLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6Q2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3Rvcjo6
Q2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0
ZXJuQ29uc3RydWN0b3I6Om9wdGltaXplQk9MKToKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBh
dHRlcm5Db25zdHJ1Y3Rvcjo6Y29udGFpbnNDYXB0dXJpbmdUZXJtcyk6CisgICAgICAgIChKU0M6
OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6Om9wdGltaXplRG90U3RhcldyYXBwZWRFeHBy
ZXNzaW9ucyk6CisKIDIwMTUtMTAtMjAgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE5MTE3NSk6IE9TUiBFeGl0IGZyb20gYW4gaW5s
aW5lZCB0YWlsIGNhbGxlZSB0cmFzaGVzIGNhbGxlZSBzYXZlIHJlZ2lzdGVycwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmNwcAkocmV2aXNpb24gMTkxMzQ1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03MzksMTEgKzczOSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBib29sIGNvbnRhaW5zQ2FwdHVyaW5nVGVybXMoUGF0dGVybkFsdGVybmF0aXZlKiBhbHRl
cm5hdGl2ZSwgc2l6ZV90IGZpcnN0VGVybUluZGV4LCBzaXplX3QgbGFzdFRlcm1JbmRleCkKKyAg
ICBib29sIGNvbnRhaW5zQ2FwdHVyaW5nVGVybXMoUGF0dGVybkFsdGVybmF0aXZlKiBhbHRlcm5h
dGl2ZSwgc2l6ZV90IGZpcnN0VGVybUluZGV4LCBzaXplX3QgZW5kSW5kZXgpCiAgICAgewogICAg
ICAgICBWZWN0b3I8UGF0dGVyblRlcm0+JiB0ZXJtcyA9IGFsdGVybmF0aXZlLT5tX3Rlcm1zOwog
Ci0gICAgICAgIGZvciAoc2l6ZV90IHRlcm1JbmRleCA9IGZpcnN0VGVybUluZGV4OyB0ZXJtSW5k
ZXggPD0gbGFzdFRlcm1JbmRleDsgKyt0ZXJtSW5kZXgpIHsKKyAgICAgICAgQVNTRVJUKGVuZElu
ZGV4IDw9IHRlcm1zLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IHRlcm1JbmRleCA9IGZp
cnN0VGVybUluZGV4OyB0ZXJtSW5kZXggPCBlbmRJbmRleDsgKyt0ZXJtSW5kZXgpIHsKICAgICAg
ICAgICAgIFBhdHRlcm5UZXJtJiB0ZXJtID0gdGVybXNbdGVybUluZGV4XTsKIAogICAgICAgICAg
ICAgaWYgKHRlcm0ubV9jYXB0dXJlKQpAQCAtNzUyLDcgKzc1Myw3IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGlmICh0ZXJtLnR5cGUgPT0gUGF0dGVyblRlcm06OlR5cGVQYXJlbnRoZXNlc1N1YnBh
dHRlcm4pIHsKICAgICAgICAgICAgICAgICBQYXR0ZXJuRGlzanVuY3Rpb24qIG5lc3RlZERpc2p1
bmN0aW9uID0gdGVybS5wYXJlbnRoZXNlcy5kaXNqdW5jdGlvbjsKICAgICAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGFsdCA9IDA7IGFsdCA8IG5lc3RlZERpc2p1bmN0aW9uLT5tX2FsdGVybmF0
aXZlcy5zaXplKCk7ICsrYWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluc0Nh
cHR1cmluZ1Rlcm1zKG5lc3RlZERpc2p1bmN0aW9uLT5tX2FsdGVybmF0aXZlc1thbHRdLmdldCgp
LCAwLCBuZXN0ZWREaXNqdW5jdGlvbi0+bV9hbHRlcm5hdGl2ZXNbYWx0XS0+bV90ZXJtcy5zaXpl
KCkgLSAxKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5zQ2FwdHVyaW5nVGVybXMo
bmVzdGVkRGlzanVuY3Rpb24tPm1fYWx0ZXJuYXRpdmVzW2FsdF0uZ2V0KCksIDAsIG5lc3RlZERp
c2p1bmN0aW9uLT5tX2FsdGVybmF0aXZlc1thbHRdLT5tX3Rlcm1zLnNpemUoKSkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CkBAIC03NzcsNyArNzc4LDcgQEAgcHVibGljOgogICAgICAgICBpZiAodGVybXMuc2l6
ZSgpID49IDMpIHsKICAgICAgICAgICAgIGJvb2wgc3RhcnRzV2l0aEJPTCA9IGZhbHNlOwogICAg
ICAgICAgICAgYm9vbCBlbmRzV2l0aEVPTCA9IGZhbHNlOwotICAgICAgICAgICAgc2l6ZV90IHRl
cm1JbmRleCwgZmlyc3RFeHByZXNzaW9uVGVybSwgbGFzdEV4cHJlc3Npb25UZXJtOworICAgICAg
ICAgICAgc2l6ZV90IHRlcm1JbmRleCwgZmlyc3RFeHByZXNzaW9uVGVybTsKIAogICAgICAgICAg
ICAgdGVybUluZGV4ID0gMDsKICAgICAgICAgICAgIGlmICh0ZXJtc1t0ZXJtSW5kZXhdLnR5cGUg
PT0gUGF0dGVyblRlcm06OlR5cGVBc3NlcnRpb25CT0wpIHsKQEAgLTgwMCwxNCArODAxLDEzIEBA
IHB1YmxpYzoKICAgICAgICAgICAgIFBhdHRlcm5UZXJtJiBsYXN0Tm9uQW5jaG9yVGVybSA9IHRl
cm1zW3Rlcm1JbmRleF07CiAgICAgICAgICAgICBpZiAoKGxhc3ROb25BbmNob3JUZXJtLnR5cGUg
IT0gUGF0dGVyblRlcm06OlR5cGVDaGFyYWN0ZXJDbGFzcykgfHwgKGxhc3ROb25BbmNob3JUZXJt
LmNoYXJhY3RlckNsYXNzICE9IG1fcGF0dGVybi5uZXdsaW5lQ2hhcmFjdGVyQ2xhc3MoKSkgfHwg
KGxhc3ROb25BbmNob3JUZXJtLnF1YW50aXR5VHlwZSAhPSBRdWFudGlmaWVyR3JlZWR5KSkKICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGxhc3RFeHBy
ZXNzaW9uVGVybSA9IHRlcm1JbmRleCAtIDE7CiAKLSAgICAgICAgICAgIGlmIChmaXJzdEV4cHJl
c3Npb25UZXJtID4gbGFzdEV4cHJlc3Npb25UZXJtKQorICAgICAgICAgICAgc2l6ZV90IGVuZElu
ZGV4ID0gdGVybUluZGV4OworICAgICAgICAgICAgaWYgKGZpcnN0RXhwcmVzc2lvblRlcm0gPj0g
ZW5kSW5kZXgpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBpZiAoIWNv
bnRhaW5zQ2FwdHVyaW5nVGVybXMoYWx0ZXJuYXRpdmUsIGZpcnN0RXhwcmVzc2lvblRlcm0sIGxh
c3RFeHByZXNzaW9uVGVybSkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKHRlcm1JbmRleCA9IHRl
cm1zLnNpemUoKSAtIDE7IHRlcm1JbmRleCA+IGxhc3RFeHByZXNzaW9uVGVybTsgLS10ZXJtSW5k
ZXgpCisgICAgICAgICAgICBpZiAoIWNvbnRhaW5zQ2FwdHVyaW5nVGVybXMoYWx0ZXJuYXRpdmUs
IGZpcnN0RXhwcmVzc2lvblRlcm0sIGVuZEluZGV4KSkgeworICAgICAgICAgICAgICAgIGZvciAo
dGVybUluZGV4ID0gdGVybXMuc2l6ZSgpIC0gMTsgdGVybUluZGV4ID49IGVuZEluZGV4OyAtLXRl
cm1JbmRleCkKICAgICAgICAgICAgICAgICAgICAgdGVybXMucmVtb3ZlKHRlcm1JbmRleCk7CiAK
ICAgICAgICAgICAgICAgICBmb3IgKHRlcm1JbmRleCA9IGZpcnN0RXhwcmVzc2lvblRlcm07IHRl
cm1JbmRleCA+IDA7IC0tdGVybUluZGV4KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxMzQ1KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTUtMTAtMjAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFlhcnJQ
YXR0ZXJuQ29uc3RydWN0b3I6OmNvbnRhaW5zQ2FwdHVyaW5nVGVybXMoKSBzaG91bGQgbm90IGFz
c3VtZSB0aGF0IGl0cyB0ZXJtcy5zaXplKCkgaXMgZ3JlYXRlciB0aGFuIDAuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAzNzIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MtMTUwMzcy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy0xNTAzNzIuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL3JlZ3Jlc3MtMTUwMzcyLmpzOiBBZGRl
ZC4KKwogMjAxNS0xMC0yMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtTdHJlYW1zIEFQSV0gVXBkYXRlIHJlYWRhYmxlLXN0cmVhbS10
ZW1wbGF0ZWQgdGVzdHMgdG8gbGF0ZXN0IHNwZWMKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MtMTUwMzcyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzLTE1MDM3Mi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzLTE1MDM3Mi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBA
QAorUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUwMzcyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQg
bm90IGNyYXNoLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MtMTUwMzcyLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy0xNTAzNzIuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MtMTUwMzcyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L3JlZ3Jlc3MtMTUwMzcyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVncmVz
cy0xNTAzNzIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3Jl
Z3Jlc3MtMTUwMzcyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL3JlZ3Jlc3MtMTUwMzcyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNyBAQAorZGVz
Y3JpcHRpb24oIlJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MDM3Mi4iKTsKKworLy8gVGhpcyB0ZXN0IHNob3VsZCBub3QgY3Jhc2gu
Cit2YXIgcmUgPSAvLiooPzooPzooPzooPzooPzooPzopKSkpKSkuKi87CityZS5leGVjKCJoZWxs
byIpOworCit0ZXN0UGFzc2VkKCJEaWQgbm90IGNyYXNoLiIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>