<?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>174321</bug_id>
          
          <creation_ts>2017-07-10 14:27:15 -0700</creation_ts>
          <short_desc>Allocation sinking phase should consider a CheckStructure that would fail as an escape</short_desc>
          <delta_ts>2017-07-10 17:29:41 -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 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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1327205</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-07-10 14:27:15 -0700</bug_when>
    <thetext>Otherwise, we might try to materialize an allocation, and think the set of structures it might have is the empty set. This is clearly wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327208</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-07-10 14:38:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/32604963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327209</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-07-10 14:41:56 -0700</bug_when>
    <thetext>I can&apos;t write a program that exhibits this behavior. I know it&apos;s possible since I&apos;m looking at a bunch of crashlogs that hit some assertions I added. I&apos;ll open a FIXME to try and generate test cases for this. I won&apos;t hold up the fix though. I was able to simulate the crash by manually editing the IR in a test I wrote which inserts a CheckStructure at a particular program point right before what would otherwise be an escape. When the escape tries to generate an object materialization, the object it&apos;s trying to materialize has the empty set of structures. This leads the phase to crash. Instead, I&apos;m going to treat anything that would filter an allocations structure set to the empty set as an escape, since we&apos;ve effectively proven that we would have exited at that point. This will lead us to generate a materialization right before such a CheckStructure (or MultiGetByOffset), and then when exiting that CheckStructure, we&apos;ll exit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327212</commentid>
    <comment_count>3</comment_count>
      <attachid>315032</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-07-10 14:53:27 -0700</bug_when>
    <thetext>Created attachment 315032
test IR editing

Uploading my IR editing code in case anybody wants to repeat my experiment. I ran it on this program:
```
function escape() { }
noInline(escape);
noDFG(escape);

function foo(c, x) {
    let o1 = {};
    let o2 = {x, o1};
    o1.o2 = o2;
    if (c) {
        escape(o2);
    }
}
noInline(foo);

for (let i = 0; i &lt; 100000; ++i) {
    foo(!!(i%2), i);
}
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327215</commentid>
    <comment_count>4</comment_count>
      <attachid>315033</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-07-10 15:09:06 -0700</bug_when>
    <thetext>Created attachment 315033
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327240</commentid>
    <comment_count>5</comment_count>
      <attachid>315033</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-07-10 16:14:24 -0700</bug_when>
    <thetext>Comment on attachment 315033
patch

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

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        objects in a cylce with each other, it would assume that each materialized

typo: cylce =&gt; cycle

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        The abstract interpretation part of the phase will model whats in the heap.

typo: whats =&gt; what&apos;s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327242</commentid>
    <comment_count>6</comment_count>
      <attachid>315040</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-07-10 16:16:29 -0700</bug_when>
    <thetext>Created attachment 315040
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327296</commentid>
    <comment_count>7</comment_count>
      <attachid>315040</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-10 17:29:40 -0700</bug_when>
    <thetext>Comment on attachment 315040
patch for landing

Clearing flags on attachment: 315040

Committed r219317: &lt;http://trac.webkit.org/changeset/219317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327297</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-10 17:29:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315032</attachid>
            <date>2017-07-10 14:53:27 -0700</date>
            <delta_ts>2017-07-10 14:53:27 -0700</delta_ts>
            <desc>test IR editing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>3238</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT2JqZWN0QWxsb2NhdGlvblNpbmtp
bmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
YmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcAkocmV2aXNpb24gMjE5MzA2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDYgKzIxOCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIEFTU0VSVChoYXNTdHJ1Y3R1cmVzKCkpOwogICAgICAgICBtX3N0cnVjdHVyZXMuZmlsdGVy
KHN0cnVjdHVyZXMpOworICAgICAgICBSRUxFQVNFX0FTU0VSVCghbV9zdHJ1Y3R1cmVzLmlzRW1w
dHkoKSk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKQEAgLTcyMSw2ICs3MjIsMzgg
QEAgcHVibGljOgogCiAgICAgYm9vbCBydW4oKQogICAgIHsKKyAgICAgICAgbV9ncmFwaC5kdW1w
KCk7CisgICAgICAgIE5vZGUqIHRhcmdldE5vZGUgPSBudWxscHRyOworICAgICAgICBmb3IgKHVu
c2lnbmVkIG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IG1fZ3JhcGguYmxvY2soMCktPnNpemUo
KTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBtX2dyYXBoLmJsb2Nr
KDApLT5hdChub2RlSW5kZXgpOworICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gTmV3T2Jq
ZWN0KSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IG5vZGU7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQodGFyZ2V0Tm9kZSk7CisKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fZ3Jh
cGguYmxvY2tzSW5QcmVPcmRlcigpKSB7CisgICAgICAgICAgICBpZiAoYmxvY2stPmluZGV4ICE9
IDEpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgYmxvY2stPnNpemUoKTsgKytub2RlSW5kZXgp
IHsKKyAgICAgICAgICAgICAgICBJbnNlcnRpb25TZXQgaW5zZXJ0aW9uU2V0KG1fZ3JhcGgpOwor
ICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsKKyAgICAg
ICAgICAgICAgICBpZiAoIW5vZGUtPm9yaWdpbi5leGl0T0spCisgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBkdW1teVN0cnVjdHVyZSA9
IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmdlbmVyYXRv
ckZ1bmN0aW9uU3RydWN0dXJlKCk7CisgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2Vy
dE5vZGUoCisgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCwgU3BlY05vbmUsIENoZWNrU3Ry
dWN0dXJlLCBub2RlLT5vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgIE9wSW5mbyhtX2dyYXBo
LmFkZFN0cnVjdHVyZVNldChkdW1teVN0cnVjdHVyZSkpLCBFZGdlKHRhcmdldE5vZGUsIEtub3du
Q2VsbFVzZSkpOworICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5leGVjdXRlKGJsb2NrKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIG1fZ3JhcGguZHVtcCgpOworCiAgICAgICAgIEFTU0VSVChtX2dyYXBoLm1fZm9ybSA9PSBT
U0EpOwogICAgICAgICBBU1NFUlQobV9ncmFwaC5tX2ZpeHBvaW50U3RhdGUgPT0gRml4cG9pbnRO
b3RDb252ZXJnZWQpOwogCkBAIC03MzIsNiArNzY1LDggQEAgcHVibGljOgogICAgICAgICAgICAg
bV9ncmFwaC5kdW1wKCk7CiAgICAgICAgIH0KIAorICAgICAgICBtX2dyYXBoLmR1bXAoKTsKKwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTkwMiw3ICs5MzcsMTMgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBDaGVja1N0cnVjdHVyZTogewogICAgICAgICAgICAgQWxsb2NhdGlv
biogYWxsb2NhdGlvbiA9IG1faGVhcC5vbmx5TG9jYWxBbGxvY2F0aW9uKG5vZGUtPmNoaWxkMSgp
Lm5vZGUoKSk7CiAgICAgICAgICAgICBpZiAoYWxsb2NhdGlvbiAmJiBhbGxvY2F0aW9uLT5pc09i
amVjdEFsbG9jYXRpb24oKSkgewotICAgICAgICAgICAgICAgIGFsbG9jYXRpb24tPmZpbHRlclN0
cnVjdHVyZXMobm9kZS0+c3RydWN0dXJlU2V0KCkpOworICAgICAgICAgICAgICAgIFJlZ2lzdGVy
ZWRTdHJ1Y3R1cmVTZXQgZmlsdGVyZWRTdHJ1Y3R1cmVzID0gYWxsb2NhdGlvbi0+c3RydWN0dXJl
cygpOworICAgICAgICAgICAgICAgIGZpbHRlcmVkU3RydWN0dXJlcy5maWx0ZXIobm9kZS0+c3Ry
dWN0dXJlU2V0KCkpOworICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZFN0cnVjdHVyZXMuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIG1faGVhcC5lc2NhcGUobm9kZS0+Y2hpbGQx
KCkubm9kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGFsbG9jYXRpb24tPnNldFN0cnVjdHVyZXMoZmlsdGVyZWRTdHJ1
Y3R1cmVzKTsKICAgICAgICAgICAgICAgICBpZiAoTm9kZSogdmFsdWUgPSBoZWFwUmVzb2x2ZShQ
cm9tb3RlZEhlYXBMb2NhdGlvbihhbGxvY2F0aW9uLT5pZGVudGlmaWVyKCksIFN0cnVjdHVyZVBM
b2MpKSkKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvQ2hlY2tTdHJ1Y3R1cmVJ
bW1lZGlhdGUodmFsdWUpOwogICAgICAgICAgICAgfSBlbHNlCkBAIC05NDYsNyArOTg3LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgaWYgKGhhc0ludmFsaWRTdHJ1Y3R1cmVzKSB7CisgICAgICAgICAgICAgICAgaWYg
KGhhc0ludmFsaWRTdHJ1Y3R1cmVzIHx8IHZhbGlkU3RydWN0dXJlcy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgbV9oZWFwLmVzY2FwZShub2RlLT5jaGlsZDEoKS5ub2RlKCkpOwog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315033</attachid>
            <date>2017-07-10 15:09:06 -0700</date>
            <delta_ts>2017-07-10 16:16:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>3869</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5MzA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE3LTA3LTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEFsbG9jYXRpb24gc2lua2luZyBwaGFzZSBzaG91bGQgY29uc2lkZXIgYSBDaGVja1N0cnVjdHVy
ZSB0aGF0IHdvdWxkIGZhaWwgYXMgYW4gZXNjYXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQzMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMy
NjA0OTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gdGhlIGFsbG9jYXRpb24gc2lua2luZyBwaGFzZSB3YXMgZ2VuZXJhdGluZyBzdG9yZXMg
dG8gbWF0ZXJpYWxpemUKKyAgICAgICAgb2JqZWN0cyBpbiBhIGN5bGNlIHdpdGggZWFjaCBvdGhl
ciwgaXQgd291bGQgYXNzdW1lIHRoYXQgZWFjaCBtYXRlcmlhbGl6ZWQKKyAgICAgICAgb2JqZWN0
IGhhZCBhIHZhbGlkLCBub24gZW1wdHksIHNldCBvZiBzdHJ1Y3R1cmVzLiBUaGlzIGlzIGFuIE9L
IGFzc3VtcHRpb24gZm9yCisgICAgICAgIHRoZSBwaGFzZSB0byBtYWtlIGJlY2F1c2UgaG93IGRv
IHlvdSBtYXRlcmlhbGl6ZSBhbiBvYmplY3Qgd2l0aCBubyBzdHJ1Y3R1cmU/CisgICAgICAgIAor
ICAgICAgICBUaGUgYWJzdHJhY3QgaW50ZXJwcmV0YXRpb24gcGFydCBvZiB0aGUgcGhhc2Ugd2ls
bCBtb2RlbCB3aGF0cyBpbiB0aGUgaGVhcC4KKyAgICAgICAgSG93ZXZlciwgaXQgd291bGQgc29t
ZXRpbWVzIG1vZGVsIHRoYXQgYSBDaGVja1N0cnVjdHVyZSB3b3VsZCBmYWlsLiBUaGUgcGhhc2UK
KyAgICAgICAgZGlkIG5vdGhpbmcgc3BlY2lhbCBmb3IgdGhpczsgaXQganVzdCBzdG9yZWQgdGhl
IGVtcHR5IHNldCBvZiBzdHJ1Y3R1cmVzIGZvcgorICAgICAgICBpdHMgcmVwcmVzZW50YXRpb24g
b2YgYSBwYXJ0aWN1bGFyIGFsbG9jYXRpb24uIEhvd2V2ZXIsIHdoYXQgdGhlIHBoYXNlIHByb3Zl
ZAorICAgICAgICBpbiBzdWNoIGEgc2NlbmFyaW8gaXMgdGhhdCwgaGFkIHRoZSBDaGVja1N0cnVj
dHVyZSBleGVjdXRlZCwgaXQgd291bGQgaGF2ZSBleGl0ZWQuCisgICAgICAgIAorICAgICAgICBU
aGlzIHBhdGNoIHRyZWF0cyBzdWNoIENoZWNrU3RydWN0dXJlcyBhbmQgTXVsdGlHZXRCeU9mZnNl
dHMgYXMgZXNjYXBlIHBvaW50cy4KKyAgICAgICAgVGhpcyB3aWxsIGNhdXNlIHRoZSBhbGxvY2F0
aW9uIGluIHF1ZXN0aW9uIHRvIGJlIG1hdGVyaWFsaXplZCBqdXN0IGJlZm9yZQorICAgICAgICB0
aGUgQ2hlY2tTdHJ1Y3R1cmUsIGFuZCB0aGVuIGF0IGV4ZWN1dGlvbiB0aW1lLCB0aGUgQ2hlY2tT
dHJ1Y3R1cmUgd2lsbCBleGl0LgorICAgICAgICAKKyAgICAgICAgSSB3YXNuJ3QgYWJsZSB0byB3
cml0ZSBhIHRlc3QgY2FzZSBmb3IgdGhpcy4gSG93ZXZlciwgSSB3YXMgYWJsZSB0byByZXByb2R1
Y2UKKyAgICAgICAgdGhpcyBjcmFzaCBieSBtYW51YWxseSBlZGl0aW5nIHRoZSBJUi4gSSd2ZSBv
cGVuZWQgYSBzZXBhcmF0ZSBidWcgdG8gaGVscCB1cworICAgICAgICBjcmVhdGUgYSB0ZXN0aW5n
IGZyYW1ld29yayBmb3Igd3JpdGluZyB0ZXN0cyBmb3IgaGFyZCB0byByZXByb2R1Y2UgYnVncyBs
aWtlIHRoaXM6CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQzMjIKKworICAgICAgICAqIGRmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNl
LmNwcDoKKwogMjAxNy0wNy0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgUmVwbGF5OiByZW1vdmUgc29tZSB1bnVzZWQgY29kZQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25T
aW5raW5nUGhhc2UuY3BwCShyZXZpc2lvbiAyMTkzMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMTgsNiArMjE4LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKGhhc1N0
cnVjdHVyZXMoKSk7CiAgICAgICAgIG1fc3RydWN0dXJlcy5maWx0ZXIoc3RydWN0dXJlcyk7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX3N0cnVjdHVyZXMuaXNFbXB0eSgpKTsKICAgICAgICAg
cmV0dXJuICp0aGlzOwogICAgIH0KIApAQCAtOTAyLDcgKzkwMywxNSBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIENoZWNrU3RydWN0dXJlOiB7CiAgICAgICAgICAgICBBbGxvY2F0aW9uKiBhbGxv
Y2F0aW9uID0gbV9oZWFwLm9ubHlMb2NhbEFsbG9jYXRpb24obm9kZS0+Y2hpbGQxKCkubm9kZSgp
KTsKICAgICAgICAgICAgIGlmIChhbGxvY2F0aW9uICYmIGFsbG9jYXRpb24tPmlzT2JqZWN0QWxs
b2NhdGlvbigpKSB7Ci0gICAgICAgICAgICAgICAgYWxsb2NhdGlvbi0+ZmlsdGVyU3RydWN0dXJl
cyhub2RlLT5zdHJ1Y3R1cmVTZXQoKSk7CisgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZFN0cnVj
dHVyZVNldCBmaWx0ZXJlZFN0cnVjdHVyZXMgPSBhbGxvY2F0aW9uLT5zdHJ1Y3R1cmVzKCk7Cisg
ICAgICAgICAgICAgICAgZmlsdGVyZWRTdHJ1Y3R1cmVzLmZpbHRlcihub2RlLT5zdHJ1Y3R1cmVT
ZXQoKSk7CisgICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkU3RydWN0dXJlcy5pc0VtcHR5KCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdyaXRlIGEgdGVzdCBmb3IgdGhpczoK
KyAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NDMyMgorICAgICAgICAgICAgICAgICAgICBtX2hlYXAuZXNjYXBlKG5vZGUtPmNo
aWxkMSgpLm5vZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBhbGxvY2F0aW9uLT5zZXRTdHJ1Y3R1cmVzKGZpbHRlcmVk
U3RydWN0dXJlcyk7CiAgICAgICAgICAgICAgICAgaWYgKE5vZGUqIHZhbHVlID0gaGVhcFJlc29s
dmUoUHJvbW90ZWRIZWFwTG9jYXRpb24oYWxsb2NhdGlvbi0+aWRlbnRpZmllcigpLCBTdHJ1Y3R1
cmVQTG9jKSkpCiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0NoZWNrU3RydWN0
dXJlSW1tZWRpYXRlKHZhbHVlKTsKICAgICAgICAgICAgIH0gZWxzZQpAQCAtOTQ2LDcgKzk1NSw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGlmIChoYXNJbnZhbGlkU3RydWN0dXJlcykgeworICAgICAgICAgICAgICAg
IGlmIChoYXNJbnZhbGlkU3RydWN0dXJlcyB8fCB2YWxpZFN0cnVjdHVyZXMuaXNFbXB0eSgpKSB7
CiAgICAgICAgICAgICAgICAgICAgIG1faGVhcC5lc2NhcGUobm9kZS0+Y2hpbGQxKCkubm9kZSgp
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQo=
</data>
<flag name="review"
          id="335898"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315040</attachid>
            <date>2017-07-10 16:16:29 -0700</date>
            <delta_ts>2017-07-10 17:29:40 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>3867</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5MzA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE3LTA3LTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEFsbG9jYXRpb24gc2lua2luZyBwaGFzZSBzaG91bGQgY29uc2lkZXIgYSBDaGVja1N0cnVjdHVy
ZSB0aGF0IHdvdWxkIGZhaWwgYXMgYW4gZXNjYXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQzMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMy
NjA0OTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAgIFdo
ZW4gdGhlIGFsbG9jYXRpb24gc2lua2luZyBwaGFzZSB3YXMgZ2VuZXJhdGluZyBzdG9yZXMgdG8g
bWF0ZXJpYWxpemUKKyAgICAgICAgb2JqZWN0cyBpbiBhIGN5Y2xlIHdpdGggZWFjaCBvdGhlciwg
aXQgd291bGQgYXNzdW1lIHRoYXQgZWFjaCBtYXRlcmlhbGl6ZWQKKyAgICAgICAgb2JqZWN0IGhh
ZCBhIHZhbGlkLCBub24gZW1wdHksIHNldCBvZiBzdHJ1Y3R1cmVzLiBUaGlzIGlzIGFuIE9LIGFz
c3VtcHRpb24gZm9yCisgICAgICAgIHRoZSBwaGFzZSB0byBtYWtlIGJlY2F1c2UgaG93IGRvIHlv
dSBtYXRlcmlhbGl6ZSBhbiBvYmplY3Qgd2l0aCBubyBzdHJ1Y3R1cmU/CisgICAgICAgIAorICAg
ICAgICBUaGUgYWJzdHJhY3QgaW50ZXJwcmV0YXRpb24gcGFydCBvZiB0aGUgcGhhc2Ugd2lsbCBt
b2RlbCB3aGF0J3MgaW4gdGhlIGhlYXAuCisgICAgICAgIEhvd2V2ZXIsIGl0IHdvdWxkIHNvbWV0
aW1lcyBtb2RlbCB0aGF0IGEgQ2hlY2tTdHJ1Y3R1cmUgd291bGQgZmFpbC4gVGhlIHBoYXNlCisg
ICAgICAgIGRpZCBub3RoaW5nIHNwZWNpYWwgZm9yIHRoaXM7IGl0IGp1c3Qgc3RvcmVkIHRoZSBl
bXB0eSBzZXQgb2Ygc3RydWN0dXJlcyBmb3IKKyAgICAgICAgaXRzIHJlcHJlc2VudGF0aW9uIG9m
IGEgcGFydGljdWxhciBhbGxvY2F0aW9uLiBIb3dldmVyLCB3aGF0IHRoZSBwaGFzZSBwcm92ZWQK
KyAgICAgICAgaW4gc3VjaCBhIHNjZW5hcmlvIGlzIHRoYXQsIGhhZCB0aGUgQ2hlY2tTdHJ1Y3R1
cmUgZXhlY3V0ZWQsIGl0IHdvdWxkIGhhdmUgZXhpdGVkLgorICAgICAgICAKKyAgICAgICAgVGhp
cyBwYXRjaCB0cmVhdHMgc3VjaCBDaGVja1N0cnVjdHVyZXMgYW5kIE11bHRpR2V0QnlPZmZzZXRz
IGFzIGVzY2FwZSBwb2ludHMuCisgICAgICAgIFRoaXMgd2lsbCBjYXVzZSB0aGUgYWxsb2NhdGlv
biBpbiBxdWVzdGlvbiB0byBiZSBtYXRlcmlhbGl6ZWQganVzdCBiZWZvcmUKKyAgICAgICAgdGhl
IENoZWNrU3RydWN0dXJlLCBhbmQgdGhlbiBhdCBleGVjdXRpb24gdGltZSwgdGhlIENoZWNrU3Ry
dWN0dXJlIHdpbGwgZXhpdC4KKyAgICAgICAgCisgICAgICAgIEkgd2Fzbid0IGFibGUgdG8gd3Jp
dGUgYSB0ZXN0IGNhc2UgZm9yIHRoaXMuIEhvd2V2ZXIsIEkgd2FzIGFibGUgdG8gcmVwcm9kdWNl
CisgICAgICAgIHRoaXMgY3Jhc2ggYnkgbWFudWFsbHkgZWRpdGluZyB0aGUgSVIuIEkndmUgb3Bl
bmVkIGEgc2VwYXJhdGUgYnVnIHRvIGhlbHAgdXMKKyAgICAgICAgY3JlYXRlIGEgdGVzdGluZyBm
cmFtZXdvcmsgZm9yIHdyaXRpbmcgdGVzdHMgZm9yIGhhcmQgdG8gcmVwcm9kdWNlIGJ1Z3MgbGlr
ZSB0aGlzOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc0MzIyCisKKyAgICAgICAgKiBkZmcvREZHT2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5j
cHA6CisKIDIwMTctMDctMDMgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIFJlcGxheTogcmVtb3ZlIHNvbWUgdW51c2VkIGNvZGUKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lu
a2luZ1BoYXNlLmNwcAkocmV2aXNpb24gMjE5MzA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjE4LDYgKzIxOCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXNTdHJ1
Y3R1cmVzKCkpOwogICAgICAgICBtX3N0cnVjdHVyZXMuZmlsdGVyKHN0cnVjdHVyZXMpOworICAg
ICAgICBSRUxFQVNFX0FTU0VSVCghbV9zdHJ1Y3R1cmVzLmlzRW1wdHkoKSk7CiAgICAgICAgIHJl
dHVybiAqdGhpczsKICAgICB9CiAKQEAgLTkwMiw3ICs5MDMsMTUgQEAgcHJpdmF0ZToKICAgICAg
ICAgY2FzZSBDaGVja1N0cnVjdHVyZTogewogICAgICAgICAgICAgQWxsb2NhdGlvbiogYWxsb2Nh
dGlvbiA9IG1faGVhcC5vbmx5TG9jYWxBbGxvY2F0aW9uKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7
CiAgICAgICAgICAgICBpZiAoYWxsb2NhdGlvbiAmJiBhbGxvY2F0aW9uLT5pc09iamVjdEFsbG9j
YXRpb24oKSkgewotICAgICAgICAgICAgICAgIGFsbG9jYXRpb24tPmZpbHRlclN0cnVjdHVyZXMo
bm9kZS0+c3RydWN0dXJlU2V0KCkpOworICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWRTdHJ1Y3R1
cmVTZXQgZmlsdGVyZWRTdHJ1Y3R1cmVzID0gYWxsb2NhdGlvbi0+c3RydWN0dXJlcygpOworICAg
ICAgICAgICAgICAgIGZpbHRlcmVkU3RydWN0dXJlcy5maWx0ZXIobm9kZS0+c3RydWN0dXJlU2V0
KCkpOworICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZFN0cnVjdHVyZXMuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRlc3QgZm9yIHRoaXM6Cisg
ICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzQzMjIKKyAgICAgICAgICAgICAgICAgICAgbV9oZWFwLmVzY2FwZShub2RlLT5jaGls
ZDEoKS5ub2RlKCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgYWxsb2NhdGlvbi0+c2V0U3RydWN0dXJlcyhmaWx0ZXJlZFN0
cnVjdHVyZXMpOwogICAgICAgICAgICAgICAgIGlmIChOb2RlKiB2YWx1ZSA9IGhlYXBSZXNvbHZl
KFByb21vdGVkSGVhcExvY2F0aW9uKGFsbG9jYXRpb24tPmlkZW50aWZpZXIoKSwgU3RydWN0dXJl
UExvYykpKQogICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9DaGVja1N0cnVjdHVy
ZUltbWVkaWF0ZSh2YWx1ZSk7CiAgICAgICAgICAgICB9IGVsc2UKQEAgLTk0Niw3ICs5NTUsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBpZiAoaGFzSW52YWxpZFN0cnVjdHVyZXMpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoaGFzSW52YWxpZFN0cnVjdHVyZXMgfHwgdmFsaWRTdHJ1Y3R1cmVzLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgICAgICAgICBtX2hlYXAuZXNjYXBlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>