<?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>154340</bug_id>
          
          <creation_ts>2016-02-17 10:15:30 -0800</creation_ts>
          <short_desc>StringPrototype functions should check for exceptions after calling JSString::value().</short_desc>
          <delta_ts>2016-02-17 14:04:51 -0800</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>fpizlo</cc>
    
    <cc>ggaren</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>1165614</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-02-17 10:15:30 -0800</bug_when>
    <thetext>JSString::value() can throw an exception if the JS string is a rope and value() needs to resolve the rope but encounters an OutOfMemory error.  If value() is not able to resolve the rope, it will return a null string (in addition to throwing the exception).  If StringPrototype functions do not check for exceptions after calling JSString::value(), they may eventually use the returned null string and crash the VM.

The fix is to add all the necessary exception checks, and do the appropriate handling if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165616</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-02-17 10:16:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/24662137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165647</commentid>
    <comment_count>2</comment_count>
      <attachid>271568</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-02-17 11:30:32 -0800</bug_when>
    <thetext>Created attachment 271568
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165738</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-02-17 14:04:51 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r196721: &lt;http://trac.webkit.org/r196721&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271568</attachid>
            <date>2016-02-17 11:30:32 -0800</date>
            <delta_ts>2016-02-17 11:35:07 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-154340.patch</filename>
            <type>text/plain</type>
            <size>13501</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2Njk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDE2LTAyLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBT
dHJpbmdQcm90b3R5cGUgZnVuY3Rpb25zIHNob3VsZCBjaGVjayBmb3IgZXhjZXB0aW9ucyBhZnRl
ciBjYWxsaW5nIEpTU3RyaW5nOjp2YWx1ZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSlNTdHJpbmc6OnZhbHVlKCkgY2FuIHRocm93IGFuIGV4Y2Vw
dGlvbiBpZiB0aGUgSlMgc3RyaW5nIGlzIGEgcm9wZSBhbmQgdmFsdWUoKQorICAgICAgICBuZWVk
cyB0byByZXNvbHZlIHRoZSByb3BlIGJ1dCBlbmNvdW50ZXJzIGFuIE91dE9mTWVtb3J5IGVycm9y
LiAgSWYgdmFsdWUoKSBpcyBub3QKKyAgICAgICAgYWJsZSB0byByZXNvbHZlIHRoZSByb3BlLCBp
dCB3aWxsIHJldHVybiBhIG51bGwgc3RyaW5nIChpbiBhZGRpdGlvbiB0byB0aHJvd2luZworICAg
ICAgICB0aGUgZXhjZXB0aW9uKS4gIElmIFN0cmluZ1Byb3RvdHlwZSBmdW5jdGlvbnMgZG8gbm90
IGNoZWNrIGZvciBleGNlcHRpb25zIGFmdGVyCisgICAgICAgIGNhbGxpbmcgSlNTdHJpbmc6OnZh
bHVlKCksIHRoZXkgbWF5IGV2ZW50dWFsbHkgdXNlIHRoZSByZXR1cm5lZCBudWxsIHN0cmluZyBh
bmQKKyAgICAgICAgY3Jhc2ggdGhlIFZNLgorCisgICAgICAgIFRoZSBmaXggaXMgdG8gYWRkIGFs
bCB0aGUgbmVjZXNzYXJ5IGV4Y2VwdGlvbiBjaGVja3MsIGFuZCBkbyB0aGUgYXBwcm9wcmlhdGUK
KyAgICAgICAgaGFuZGxpbmcgaWYgbmVlZGVkLgorCisgICAgICAgIEFsc28gaW4gYSBmZXcgcGxh
Y2Ugd2hlcmUgd2hlbiBhbiBleGNlcHRpb24gaXMgZGV0ZWN0ZWQsIHdlIHJldHVybiBKU1ZhbHVl
KCksIEkKKyAgICAgICAgY2hhbmdlZCBpdCB0byByZXR1cm4ganNVbmRlZmluZWQoKSBpbnN0ZWFk
IHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdCBvZiB0aGUKKyAgICAgICAgZmlsZS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6cmVw
bGFjZVVzaW5nUmVnRXhwU2VhcmNoKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTWF0
Y2gpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNTbGljZSk6CisgICAgICAgIChKU0M6
OnN0cmluZ1Byb3RvRnVuY1NwbGl0KToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTG9j
YWxlQ29tcGFyZSk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0JpZyk6CisgICAgICAg
IChKU0M6OnN0cmluZ1Byb3RvRnVuY1NtYWxsKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9G
dW5jQmxpbmspOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNCb2xkKToKKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jRml4ZWQpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNJdGFsaWNzKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3RyaWtlKToKKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3ViKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9G
dW5jU3VwKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jRm9udGNvbG9yKToKKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jRm9udHNpemUpOgorICAgICAgICAoSlNDOjpzdHJpbmdQ
cm90b0Z1bmNBbmNob3IpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNMaW5rKToKKyAg
ICAgICAgKEpTQzo6dHJpbVN0cmluZyk6CisKIDIwMTYtMDItMTYgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KIAogICAgICAgICBGVExfVVNFU19CMyBzaG91bGQgYmUgdW5jb25kaXRp
b25hbGx5IHRydWUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTk2Njk3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkw
LDEzICs0OTAsMTYgQEAgc3RhdGljIE5FVkVSX0lOTElORSBFbmNvZGVkSlNWYWx1ZSByZXBsYQog
ICAgIFN0cmluZyByZXBsYWNlbWVudFN0cmluZzsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAg
ICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKHJlcGxhY2VWYWx1ZSwgY2FsbERhdGEp
OwotICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisgICAgaWYgKGNhbGxUeXBlID09
IENhbGxUeXBlTm9uZSkgewogICAgICAgICByZXBsYWNlbWVudFN0cmluZyA9IHJlcGxhY2VWYWx1
ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UgPSBzdHJpbmctPnZhbHVlKGV4
ZWMpOwogICAgIHVuc2lnbmVkIHNvdXJjZUxlbiA9IHNvdXJjZS5sZW5ndGgoKTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNW
YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCA9IGFzUmVnRXhwT2JqZWN0KHNlYXJjaFZh
bHVlKTsKICAgICBSZWdFeHAqIHJlZ0V4cCA9IHJlZ0V4cE9iamVjdC0+cmVnRXhwKCk7CiAgICAg
Ym9vbCBnbG9iYWwgPSByZWdFeHAtPmdsb2JhbCgpOwpAQCAtNTA1LDcgKzUwOCw3IEBAIHN0YXRp
YyBORVZFUl9JTkxJTkUgRW5jb2RlZEpTVmFsdWUgcmVwbGEKICAgICAgICAgLy8gRVM1LjEgMTUu
NS40LjEwIHN0ZXAgOC5hLgogICAgICAgICByZWdFeHBPYmplY3QtPnNldExhc3RJbmRleChleGVj
LCAwKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2Fs
bFR5cGVOb25lICYmICFyZXBsYWNlbWVudFN0cmluZy5sZW5ndGgoKSkKICAgICAgICAgICAgIHJl
dHVybiByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaChleGVjLCBzdHJpbmcsIHNvdXJjZSwgcmVnRXhw
KTsKQEAgLTUyNiw3ICs1MjksNyBAQCBzdGF0aWMgTkVWRVJfSU5MSU5FIEVuY29kZWRKU1ZhbHVl
IHJlcGxhCiAgICAgICAgIEpTRnVuY3Rpb24qIGZ1bmMgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KHJl
cGxhY2VWYWx1ZSk7CiAgICAgICAgIENhY2hlZENhbGwgY2FjaGVkQ2FsbChleGVjLCBmdW5jLCBh
cmdDb3VudCk7CiAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOworICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CiAgICAgICAgIGlmIChzb3VyY2UuaXM4Qml0KCkpIHsKICAgICAgICAgICAgIHdoaWxlICh0
cnVlKSB7CkBAIC01NTUsNyArNTU4LDcgQEAgc3RhdGljIE5FVkVSX0lOTElORSBFbmNvZGVkSlNW
YWx1ZSByZXBsYQogICAgICAgICAgICAgICAgIEpTVmFsdWUganNSZXN1bHQgPSBjYWNoZWRDYWxs
LmNhbGwoKTsKICAgICAgICAgICAgICAgICByZXBsYWNlbWVudHMuYXBwZW5kKGpzUmVzdWx0LnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgICAgICAgICAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAgICAgICAg
ICAgICAgIGxhc3RJbmRleCA9IHJlc3VsdC5lbmQ7CiAgICAgICAgICAgICAgICAgc3RhcnRQb3Np
dGlvbiA9IGxhc3RJbmRleDsKQEAgLTU5NCw3ICs1OTcsNyBAQCBzdGF0aWMgTkVWRVJfSU5MSU5F
IEVuY29kZWRKU1ZhbHVlIHJlcGxhCiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBqc1Jlc3VsdCA9
IGNhY2hlZENhbGwuY2FsbCgpOwogICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50cy5hcHBlbmQo
anNSZXN1bHQudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICAgICAgICAgICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
CiAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gcmVzdWx0LmVuZDsKICAgICAgICAgICAgICAg
ICBzdGFydFBvc2l0aW9uID0gbGFzdEluZGV4OwpAQCAtNjM1LDcgKzYzOCw3IEBAIHN0YXRpYyBO
RVZFUl9JTkxJTkUgRW5jb2RlZEpTVmFsdWUgcmVwbGEKIAogICAgICAgICAgICAgICAgIHJlcGxh
Y2VtZW50cy5hcHBlbmQoY2FsbChleGVjLCByZXBsYWNlVmFsdWUsIGNhbGxUeXBlLCBjYWxsRGF0
YSwganNVbmRlZmluZWQoKSwgYXJncykudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAg
ICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpbnQg
cmVwbExlbiA9IHJlcGxhY2VtZW50U3RyaW5nLmxlbmd0aCgpOwogICAgICAgICAgICAgICAgIGlm
IChsYXN0SW5kZXggPCByZXN1bHQuc3RhcnQgfHwgcmVwbExlbikgewpAQCAtOTkwLDcgKzk5Myw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICAgICAgICAg
IC8vIEVTNS4xIDE1LjUuNC4xMCBzdGVwIDguYS4KICAgICAgICAgICAgIHJlZ0V4cE9iamVjdC0+
c2V0TGFzdEluZGV4KGV4ZWMsIDApOwogICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQotICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLyoKQEAgLTk5OSw3ICsxMDAyLDEzIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICAgICAgICogIHJl
cGxhY2VkIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgZXhwcmVzc2lvbiBuZXcgUmVnRXhwKHJlZ2V4
cCkuCiAgICAgICAgICAqICBQZXIgRUNNQSAxNS4xMC40LjEsIGlmIGEwIGlzIHVuZGVmaW5lZCBz
dWJzdGl0dXRlIHRoZSBlbXB0eSBzdHJpbmcuCiAgICAgICAgICAqLwotICAgICAgICByZWdFeHAg
PSBSZWdFeHA6OmNyZWF0ZShleGVjLT52bSgpLCBhMC5pc1VuZGVmaW5lZCgpID8gZW1wdHlTdHJp
bmcoKSA6IGEwLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSwgTm9GbGFncyk7CisgICAgICAg
IFN0cmluZyBwYXR0ZXJuU3RyaW5nID0gZW1wdHlTdHJpbmcoKTsKKyAgICAgICAgaWYgKCFhMC5p
c1VuZGVmaW5lZCgpKSB7CisgICAgICAgICAgICBwYXR0ZXJuU3RyaW5nID0gYTAudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpOworICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CisgICAgICAgIH0KKyAgICAgICAgcmVnRXhwID0gUmVnRXhwOjpjcmVhdGUoZXhlYy0+dm0oKSwg
cGF0dGVyblN0cmluZywgTm9GbGFncyk7CiAgICAgICAgIGlmICghcmVnRXhwLT5pc1ZhbGlkKCkp
CiAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9y
KGV4ZWMsIHJlZ0V4cC0+ZXJyb3JNZXNzYWdlKCkpKTsKICAgICB9CkBAIC0xMDQyLDYgKzEwNTEs
OSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgaWYgKCFj
aGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworCiAgICAgaW50IGxlbiA9IHMubGVu
Z3RoKCk7CiAgICAgUkVMRUFTRV9BU1NFUlQobGVuID49IDApOwogCkBAIC0xMTA0LDYgKzExMTYs
OSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgLy8gMi4g
TGV0IFMgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIFRvU3RyaW5nLCBnaXZpbmcgaXQgdGhlIHRo
aXMgdmFsdWUgYXMgaXRzIGFyZ3VtZW50LgogICAgIC8vIDYuIExldCBzIGJlIHRoZSBudW1iZXIg
b2YgY2hhcmFjdGVycyBpbiBTLgogICAgIFN0cmluZyBpbnB1dCA9IHRoaXNWYWx1ZS50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIEFTU0VSVCgh
aW5wdXQuaXNOdWxsKCkpOwogCiAgICAgLy8gMy4gTGV0IEEgYmUgYSBuZXcgYXJyYXkgY3JlYXRl
ZCBhcyBpZiBieSB0aGUgZXhwcmVzc2lvbiBuZXcgQXJyYXkoKQogICAgIC8vICAgIHdoZXJlIEFy
cmF5IGlzIHRoZSBzdGFuZGFyZCBidWlsdC1pbiBjb25zdHJ1Y3RvciB3aXRoIHRoYXQgbmFtZS4K
QEAgLTEyMzAsNiArMTI0NSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG8KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyBzZXBhcmF0b3Ig
PSBzZXBhcmF0b3JWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgICAgIGlm
IChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICAgICAgLy8gOS4gSWYgbGltID09IDAsIHJldHVybiBB
LgogICAgICAgICBpZiAoIWxpbWl0KQpAQCAtMTQzOSw5ICsxNDU2LDE0IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNp
YmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwog
ICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBKU1ZhbHVlIGEwID0gZXhlYy0+YXJndW1lbnQoMCk7
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihDb2xsYXRvcigpLmNvbGxhdGUo
cywgYTAudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSkpOworICAgIFN0cmluZyBzdHIgPSBh
MC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoQ29sbGF0b3IoKS5jb2xsYXRlKHMsIHN0
cikpKTsKIH0KIAogI2lmIEVOQUJMRShJTlRMKQpAQCAtMTU0OSw2ICsxNTcxLDggQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90bwogICAgIGlmICghY2hlY2tPYmplY3RD
b2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMp
OworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFr
ZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgIjxiaWc+IiwgcywgIjwvYmlnPiIpKTsKIH0KIApAQCAt
MTU1OCw2ICsxNTgyLDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
bwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgIjxzbWFsbD4i
LCBzLCAiPC9zbWFsbD4iKSk7CiB9CiAKQEAgLTE1NjcsNiArMTU5Myw4IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNp
YmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwog
ICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250
cml2aWFsU3RyaW5nKGV4ZWMsICI8Ymxpbms+IiwgcywgIjwvYmxpbms+IikpOwogfQogCkBAIC0x
NTc2LDYgKzE2MDQsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0
cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCAiPGI+Iiwgcywg
IjwvYj4iKSk7CiB9CiAKQEAgLTE1ODUsNiArMTYxNSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNW
YWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmlu
ZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250cml2aWFsU3Ry
aW5nKGV4ZWMsICI8dHQ+IiwgcywgIjwvdHQ+IikpOwogfQogCkBAIC0xNTk0LDYgKzE2MjYsOCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgaWYgKCFjaGVj
a09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFs
dWUoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCAiPGk+IiwgcywgIjwvaT4iKSk7CiB9CiAK
QEAgLTE2MDMsNiArMTYzNyw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG8KICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVl
LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250cml2aWFsU3RyaW5nKGV4ZWMsICI8c3Ry
aWtlPiIsIHMsICI8L3N0cmlrZT4iKSk7CiB9CiAKQEAgLTE2MTIsNiArMTY0OCw4IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBpZiAoIWNoZWNrT2JqZWN0
Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVj
KTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01h
a2VOb250cml2aWFsU3RyaW5nKGV4ZWMsICI8c3ViPiIsIHMsICI8L3N1Yj4iKSk7CiB9CiAKQEAg
LTE2MjEsNiArMTY1OSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG8KICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250cml2aWFsU3RyaW5nKGV4ZWMsICI8c3VwPiIs
IHMsICI8L3N1cD4iKSk7CiB9CiAKQEAgLTE2MzAsNiArMTY3MCw5IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxl
KHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAg
IFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisKICAgICBKU1ZhbHVlIGEwID0gZXhlYy0+YXJndW1lbnQoMCk7CiAg
ICAgU3RyaW5nIGNvbG9yID0gYTAudG9XVEZTdHJpbmcoZXhlYyk7CiAgICAgY29sb3IucmVwbGFj
ZVdpdGhMaXRlcmFsKCciJywgIiZxdW90OyIpOwpAQCAtMTY0Myw2ICsxNjg2LDkgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90bwogICAgIGlmICghY2hlY2tPYmplY3RD
b2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMp
OworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKwogICAgIEpTVmFsdWUgYTAgPSBleGVjLT5hcmd1bWVu
dCgwKTsKIAogICAgIHVpbnQzMl90IHNtYWxsSW50ZWdlcjsKQEAgLTE2OTIsNiArMTczOCw5IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBpZiAoIWNoZWNr
T2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1
ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisKICAgICBKU1ZhbHVlIGEwID0gZXhlYy0+
YXJndW1lbnQoMCk7CiAgICAgU3RyaW5nIGFuY2hvciA9IGEwLnRvV1RGU3RyaW5nKGV4ZWMpOwog
ICAgIGFuY2hvci5yZXBsYWNlV2l0aExpdGVyYWwoJyInLCAiJnF1b3Q7Iik7CkBAIC0xNzA1LDYg
KzE3NTQsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAg
aWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworCiAgICAgSlNWYWx1ZSBh
MCA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAgIFN0cmluZyBsaW5rVGV4dCA9IGEwLnRvV1RGU3Ry
aW5nKGV4ZWMpOwogICAgIGxpbmtUZXh0LnJlcGxhY2VXaXRoTGl0ZXJhbCgnIicsICImcXVvdDsi
KTsKQEAgLTE3NDcsNiArMTc5OSw5IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSB0cmltU3RyaW5n
KEV4ZWNTdGEKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAg
ICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgc3RyID0gdGhpc1Zh
bHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCiAgICAgdW5zaWduZWQgbGVm
dCA9IDA7CiAgICAgaWYgKHRyaW1LaW5kICYgVHJpbUxlZnQpIHsKICAgICAgICAgd2hpbGUgKGxl
ZnQgPCBzdHIubGVuZ3RoKCkgJiYgaXNTdHJXaGl0ZVNwYWNlKHN0cltsZWZ0XSkpCg==
</data>
<flag name="review"
          id="296381"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>