<?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>163955</bug_id>
          
          <creation_ts>2016-10-25 10:59:53 -0700</creation_ts>
          <short_desc>Explore increasing max JSString::m_length to UINT_MAX.</short_desc>
          <delta_ts>2017-08-25 14:53: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="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1244281</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-10-25 10:59:53 -0700</bug_when>
    <thetext>If there&apos;s no perf implications, we should increase max JSString::m_length to UINT_MAX to match the max StringImpl length.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342407</commentid>
    <comment_count>1</comment_count>
      <attachid>319083</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-08-25 09:33:09 -0700</bug_when>
    <thetext>Created attachment 319083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342409</commentid>
    <comment_count>2</comment_count>
      <attachid>319085</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-08-25 09:36:33 -0700</bug_when>
    <thetext>Created attachment 319085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342410</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-08-25 09:37:15 -0700</bug_when>
    <thetext>rdar://problem/32001499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342411</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-08-25 09:38:33 -0700</bug_when>
    <thetext>I&apos;ll watch the bots for perf changes. I doubt this should make a difference to perf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342413</commentid>
    <comment_count>5</comment_count>
      <attachid>319085</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-08-25 09:40:12 -0700</bug_when>
    <thetext>Comment on attachment 319085
Patch

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

What prevents size overflow without this check? Don&apos;t you want to check UINT_MAX instead of INT_MAX?

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        Explore increasing max JSString::m_length to UINT_MAX.

Weird to still be &quot;exploring&quot; here :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342416</commentid>
    <comment_count>6</comment_count>
      <attachid>319085</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-08-25 09:43:36 -0700</bug_when>
    <thetext>Comment on attachment 319085
Patch

OK Keith pointed out that size_t is misleading because string&apos;s .length returns unsigned. The assumption I have now is that tryMakeString will fail on its own, so this patch is OK. Please confirm that&apos;s the case before committing. r=me if so. Maybe needs a test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342434</commentid>
    <comment_count>7</comment_count>
      <attachid>319085</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-25 10:27:50 -0700</bug_when>
    <thetext>Comment on attachment 319085
Patch

Clearing flags on attachment: 319085

Committed r221192: &lt;http://trac.webkit.org/changeset/221192&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342435</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-25 10:27:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342492</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-08-25 13:18:54 -0700</bug_when>
    <thetext>I don&apos;t think this patch can be right. It deletes an ASSERT and a comment explaining a problem, but it doesn&apos;t fix the problem.

Consider ThunkGenerators.cpp::stringCharLoad and similar functions:

    // load index
    jit.loadInt32Argument(0, SpecializedThunkJIT::regT1); // regT1 contains the index

    // Do an unsigned compare to simultaneously filter negative indices as well as indices that are too large
    jit.appendFailure(jit.branch32(MacroAssembler::AboveOrEqual, SpecializedThunkJIT::regT1, SpecializedThunkJIT::regT2));

    ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342502</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-08-25 13:44:22 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #9)
&gt; I don&apos;t think this patch can be right. It deletes an ASSERT and a comment
&gt; explaining a problem, but it doesn&apos;t fix the problem.
&gt; 
&gt; Consider ThunkGenerators.cpp::stringCharLoad and similar functions:
&gt; 
&gt;     // load index
&gt;     jit.loadInt32Argument(0, SpecializedThunkJIT::regT1); // regT1 contains
&gt; the index
&gt; 
&gt;     // Do an unsigned compare to simultaneously filter negative indices as
&gt; well as indices that are too large
&gt;     jit.appendFailure(jit.branch32(MacroAssembler::AboveOrEqual,
&gt; SpecializedThunkJIT::regT1, SpecializedThunkJIT::regT2));
&gt; 
&gt;     ...

I think this is fine. That thunk calls the slow path (the C++ code) if it fails that check. The C++ code does the right thing for positive offsets. It will only fail if the unsigned offset they are looking for is &gt; 2GB, which is also exceedingly unlikely. It also doesn&apos;t seem like any of the other code does the wrong thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342534</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-25 14:53:26 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #10)
&gt; (In reply to Geoffrey Garen from comment #9)
&gt; &gt; I don&apos;t think this patch can be right. It deletes an ASSERT and a comment
&gt; &gt; explaining a problem, but it doesn&apos;t fix the problem.
&gt; &gt; 
&gt; &gt; Consider ThunkGenerators.cpp::stringCharLoad and similar functions:
&gt; &gt; 
&gt; &gt;     // load index
&gt; &gt;     jit.loadInt32Argument(0, SpecializedThunkJIT::regT1); // regT1 contains
&gt; &gt; the index
&gt; &gt; 
&gt; &gt;     // Do an unsigned compare to simultaneously filter negative indices as
&gt; &gt; well as indices that are too large
&gt; &gt;     jit.appendFailure(jit.branch32(MacroAssembler::AboveOrEqual,
&gt; &gt; SpecializedThunkJIT::regT1, SpecializedThunkJIT::regT2));
&gt; &gt; 
&gt; &gt;     ...
&gt; 
&gt; I think this is fine. That thunk calls the slow path (the C++ code) if it
&gt; fails that check. The C++ code does the right thing for positive offsets. It
&gt; will only fail if the unsigned offset they are looking for is &gt; 2GB, which
&gt; is also exceedingly unlikely. It also doesn&apos;t seem like any of the other
&gt; code does the wrong thing.

What&apos;s &quot;any of the other code&quot; in this context?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319083</attachid>
            <date>2017-08-25 09:33:09 -0700</date>
            <delta_ts>2017-08-25 09:36:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163955-20170825093308.patch</filename>
            <type>text/plain</type>
            <size>2938</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NjM0ZTE5MDM5ZWMyYjI2ODRjNTU2MThkYjk1MDQxYzAwNjE5OWVjLi43MzM1M2FjY2MxMjllM2Iz
ZmQxMjM5OWUyZTQyYmZlZTYzNTQ2M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNy0wOC0yNSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBFeHBsb3JlIGluY3JlYXNpbmcgbWF4IEpTU3RyaW5nOjptX2xlbmd0
aCB0byBVSU5UX01BWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2Mzk1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgY2FuIGNhdXNlIHVzIHRvIHJlbGVhc2UgYXNzZXJ0IG9uIHNvbWUgY29kZSBw
YXRocy4gSSBkb24ndAorICAgICAgICBzZWUgYSByZWFzb24gdG8gbWFpbnRhaW4gdGhpcyByZXN0
cmljdGlvbi4KKworICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6
SlNTdHJpbmc6Omxlbmd0aCBjb25zdCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpzZXRMZW5n
dGgpOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6aXNWYWxpZExlbmd0aCk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9KU1N0cmluZ0J1aWxkZXIuaDoKKyAgICAgICAgKEpTQzo6anNNYWtl
Tm9udHJpdmlhbFN0cmluZyk6CisKIDIwMTctMDgtMjIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yaXZpZXdlZCwgZml4IHdpbmRvd3MgYnVpbGQu
Li4gZm9yIHJlYWx6LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5k
ZXggMzEwNTcwNTU5YTg4MGNlMzYyOTkwMTRmODRiYjBkYTM4ODlmNGJiOC4uYWI1NDU3MmI5NTJk
N2Q1ZjMwODVlMjc2OGM2YTZkY2U2MjMwODY3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5oCkBAIC0xNjQsMTQgKzE2NCw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBT
dHJpbmcmIHRyeUdldFZhbHVlKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nSW1wbCogdHJ5R2V0
VmFsdWVJbXBsKCkgY29uc3Q7CiAgICAgQUxXQVlTX0lOTElORSB1bnNpZ25lZCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQotICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wg
aXNWYWxpZExlbmd0aChzaXplX3QgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgLy8gV2hpbGUgbGVu
Z3RoIGlzIG9mIHR5cGUgdW5zaWduZWQsIHRoZSBydW50aW1lIGFuZCBjb21waWxlcnMgYXJlIGFs
bAotICAgICAgICAvLyBleHBlY3RpbmcgdGhhdCBtX2xlbmd0aCBpcyBhIHBvc2l0aXZlIHZhbHVl
IDw9IElOVF9NQVguCi0gICAgICAgIC8vIEZJWE1FOiBMb29rIGludG8gbWFraW5nIHRoZSBtYXgg
bGVuZ3RoIFVJTlRfTUFYIHRvIG1hdGNoIFN0cmluZ0ltcGwncyBtYXggbGVuZ3RoLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzOTU1Ci0gICAg
ICAgIHJldHVybiBsZW5ndGggPD0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCk7
Ci0gICAgfQogCiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQ
cmltaXRpdmVUeXBlKSBjb25zdDsKICAgICBib29sIHRvQm9vbGVhbigpIGNvbnN0IHsgcmV0dXJu
ICEhbGVuZ3RoKCk7IH0KQEAgLTIxOSw3ICsyMTEsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0TGVuZ3RoKHVuc2lnbmVkIGxlbmd0aCkKICAgICB7Ci0gICAgICAg
IFJFTEVBU0VfQVNTRVJUKGlzVmFsaWRMZW5ndGgobGVuZ3RoKSk7CiAgICAgICAgIG1fbGVuZ3Ro
ID0gbGVuZ3RoOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdHJpbmdCdWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0cmluZ0J1aWxkZXIuaAppbmRleCA4OGFkNmRkZWYxZjQ0N2NjNTU4NzVlMDJkMzlhNTRkYzE4
MDgyODJjLi45YjQyOTRhYWRhZTFkZGNjNmMzMDBlMzE2NDJlOWFhMDA5MTViZmY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0J1aWxkZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0J1aWxkZXIuaApAQCAtMTMx
LDcgKzEzMSw3IEBAIGlubGluZSBKU1ZhbHVlIGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHJpbmdUeXBlJiBzdHJpbmcsCiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3Ry
aW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJpbmcoc3RyaW5nLCBzdHJpbmdzLi4uKTsKLSAgICBpZiAo
VU5MSUtFTFkoIXJlc3VsdCB8fCAhSlNTdHJpbmc6OmlzVmFsaWRMZW5ndGgocmVzdWx0Lmxlbmd0
aCgpKSkpCisgICAgaWYgKFVOTElLRUxZKCFyZXN1bHQpKQogICAgICAgICByZXR1cm4gdGhyb3dP
dXRPZk1lbW9yeUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICByZXR1cm4ganNOb250cml2aWFsU3Ry
aW5nKGV4ZWMsIFdURk1vdmUocmVzdWx0KSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319085</attachid>
            <date>2017-08-25 09:36:33 -0700</date>
            <delta_ts>2017-08-25 10:27:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163955-20170825093632.patch</filename>
            <type>text/plain</type>
            <size>2973</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NjM0ZTE5MDM5ZWMyYjI2ODRjNTU2MThkYjk1MDQxYzAwNjE5OWVjLi43NjI5MzcxNzIzNmM2MzMx
YzNmMzFiOWMyOWJhYTE3MzFkYzU2YjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0wOC0yNSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBFeHBsb3JlIGluY3JlYXNpbmcgbWF4IEpTU3RyaW5nOjptX2xlbmd0
aCB0byBVSU5UX01BWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2Mzk1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzIwMDE0OTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjYW4gY2F1c2Ug
dXMgdG8gcmVsZWFzZSBhc3NlcnQgb24gc29tZSBjb2RlIHBhdGhzLiBJIGRvbid0CisgICAgICAg
IHNlZSBhIHJlYXNvbiB0byBtYWludGFpbiB0aGlzIHJlc3RyaWN0aW9uLgorCisgICAgICAgICog
cnVudGltZS9KU1N0cmluZy5oOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6bGVuZ3RoIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnNldExlbmd0aCk6CisgICAgICAgIChKU0M6OkpT
U3RyaW5nOjppc1ZhbGlkTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTU3Ry
aW5nQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpqc01ha2VOb250cml2aWFsU3RyaW5nKToKKwog
MjAxNy0wOC0yMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJpdmlld2VkLCBmaXggd2luZG93cyBidWlsZC4uLiBmb3IgcmVhbHouCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCAzMTA1NzA1NTlhODgwY2UzNjI5
OTAxNGY4NGJiMGRhMzg4OWY0YmI4Li5hYjU0NTcyYjk1MmQ3ZDVmMzA4NWUyNzY4YzZhNmRjZTYy
MzA4Njc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAgLTE2
NCwxNCArMTY0LDYgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgdHJ5R2V0VmFsdWUoKSBj
b25zdDsKICAgICBjb25zdCBTdHJpbmdJbXBsKiB0cnlHZXRWYWx1ZUltcGwoKSBjb25zdDsKICAg
ICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3Ro
OyB9Ci0gICAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc1ZhbGlkTGVuZ3RoKHNpemVfdCBs
ZW5ndGgpCi0gICAgewotICAgICAgICAvLyBXaGlsZSBsZW5ndGggaXMgb2YgdHlwZSB1bnNpZ25l
ZCwgdGhlIHJ1bnRpbWUgYW5kIGNvbXBpbGVycyBhcmUgYWxsCi0gICAgICAgIC8vIGV4cGVjdGlu
ZyB0aGF0IG1fbGVuZ3RoIGlzIGEgcG9zaXRpdmUgdmFsdWUgPD0gSU5UX01BWC4KLSAgICAgICAg
Ly8gRklYTUU6IExvb2sgaW50byBtYWtpbmcgdGhlIG1heCBsZW5ndGggVUlOVF9NQVggdG8gbWF0
Y2ggU3RyaW5nSW1wbCdzIG1heCBsZW5ndGguCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM5NTUKLSAgICAgICAgcmV0dXJuIGxlbmd0aCA8PSBz
dGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKTsKLSAgICB9CiAKICAgICBKU1ZhbHVl
IHRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0Owog
ICAgIGJvb2wgdG9Cb29sZWFuKCkgY29uc3QgeyByZXR1cm4gISFsZW5ndGgoKTsgfQpAQCAtMjE5
LDcgKzIxMSw2IEBAIHByb3RlY3RlZDoKIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRMZW5n
dGgodW5zaWduZWQgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxp
ZExlbmd0aChsZW5ndGgpKTsKICAgICAgICAgbV9sZW5ndGggPSBsZW5ndGg7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0J1aWxkZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nQnVpbGRlci5oCmluZGV4
IDg4YWQ2ZGRlZjFmNDQ3Y2M1NTg3NWUwMmQzOWE1NGRjMTgwODI4MmMuLjliNDI5NGFhZGFlMWRk
Y2M2YzMwMGUzMTY0MmU5YWEwMDkxNWJmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RyaW5nQnVpbGRlci5oCkBAIC0xMzEsNyArMTMxLDcgQEAgaW5saW5lIEpT
VmFsdWUganNNYWtlTm9udHJpdmlhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmlu
Z1R5cGUmIHN0cmluZywKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBTdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZVN0
cmluZyhzdHJpbmcsIHN0cmluZ3MuLi4pOwotICAgIGlmIChVTkxJS0VMWSghcmVzdWx0IHx8ICFK
U1N0cmluZzo6aXNWYWxpZExlbmd0aChyZXN1bHQubGVuZ3RoKCkpKSkKKyAgICBpZiAoVU5MSUtF
TFkoIXJlc3VsdCkpCiAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYywg
c2NvcGUpOwogICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgV1RGTW92ZShyZXN1
bHQpKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>