<?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>75713</bug_id>
          
          <creation_ts>2012-01-06 10:19:24 -0800</creation_ts>
          <short_desc>Cleanup 304 handing after r102602</short_desc>
          <delta_ts>2012-01-17 18:07:07 -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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>531142</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-06 10:19:24 -0800</bug_when>
    <thetext>I think there&apos;s a better way to fix the problem of CachedResource use-after-free in 304 cases than trac.webkit.org/changeset/102602.

The fundamental reason the revalidating CachedResource gets deleted prematurely is that clearResourceToRevalidate() gets called re-entrantly from switchClientsToRevalidatedResource(), so m_resourceToRevalidate gets nulled, and that&apos;s the only item in canDelete() that&apos;s causing us to return false.

Ensuring clearResourceToRevalidate() doesn&apos;t get called during switchClientsToRevalidatedResource() should make problems go away and be marginally more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531247</commentid>
    <comment_count>1</comment_count>
      <attachid>121463</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-06 12:12:52 -0800</bug_when>
    <thetext>Created attachment 121463
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532537</commentid>
    <comment_count>2</comment_count>
      <attachid>121463</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-09 14:36:16 -0800</bug_when>
    <thetext>Comment on attachment 121463
patch

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

&gt; Source/WebCore/loader/cache/CachedResource.cpp:546
&gt; +    m_switchingClientsToRevalidatedResource = true;

Generally I&apos;m not a big fan of this pattern, mostly because I&apos;ve seen what it&apos;s done to FrameLoader.  If you think this is the right thing to do here, then I guess it&apos;s ok.

&gt; Source/WebCore/loader/cache/CachedResource.h:304
&gt; +    bool m_switchingClientsToRevalidatedResource : 1;

The : 1 here isn&apos;t going to do that much good if there aren&apos;t other members to pack it with.  Maybe skip for now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532587</commentid>
    <comment_count>3</comment_count>
      <attachid>121463</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-09 15:51:02 -0800</bug_when>
    <thetext>Comment on attachment 121463
patch

I vaguely feel that a change like this should come with a few new ASSERTs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532590</commentid>
    <comment_count>4</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-09 15:53:37 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 121463 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121463&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResource.cpp:546
&gt; &gt; +    m_switchingClientsToRevalidatedResource = true;
&gt; 
&gt; Generally I&apos;m not a big fan of this pattern, mostly because I&apos;ve seen what it&apos;s done to FrameLoader.  If you think this is the right thing to do here, then I guess it&apos;s ok.

Basically, I feel like it&apos;s the least evil of the options.  I don&apos;t like it either, so I&apos;ll take another look and see if I can find something slightly more palatable.

&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResource.h:304
&gt; &gt; +    bool m_switchingClientsToRevalidatedResource : 1;
&gt; 
&gt; The : 1 here isn&apos;t going to do that much good if there aren&apos;t other members to pack it with.  Maybe skip for now?

Good point, I was on auto-pilot when I did that.

(In reply to comment #3)
&gt; (From update of attachment 121463 [details])
&gt; I vaguely feel that a change like this should come with a few new ASSERTs.

Good point, I&apos;ll see what I can do :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533153</commentid>
    <comment_count>5</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-10 09:57:21 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 121463 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121463&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/cache/CachedResource.cpp:546
&gt; &gt; &gt; +    m_switchingClientsToRevalidatedResource = true;
&gt; &gt; 
&gt; &gt; Generally I&apos;m not a big fan of this pattern, mostly because I&apos;ve seen what it&apos;s done to FrameLoader.  If you think this is the right thing to do here, then I guess it&apos;s ok.
&gt; 
&gt; Basically, I feel like it&apos;s the least evil of the options.  I don&apos;t like it either, so I&apos;ll take another look and see if I can find something slightly more palatable.

I haven&apos;t found any good alternative to the variable to prevent undesirable reentrancy. I think the right solution is to just make CachedResource RefCounted.  If no one objects, I&apos;ll address comments and land this patch, then open a new bug to standardize CachedResource&apos;s lifetime management.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533463</commentid>
    <comment_count>6</comment_count>
      <attachid>121934</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-10 16:21:43 -0800</bug_when>
    <thetext>Created attachment 121934
Are these ASSERTs enough?

Moved the definition of m_switchingClientsToRevalidatedResource next to other 1-bit bools.

Added ASSERTs in CachedResource::switchClientsToRevalidatedResource() and MemoryCache::revalidationSucceeded().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537298</commentid>
    <comment_count>7</comment_count>
      <attachid>121934</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 12:43:17 -0800</bug_when>
    <thetext>Comment on attachment 121934
Are these ASSERTs enough?

Rejecting attachment 121934 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
re/loader/SubresourceLoader.cpp
Hunk #1 FAILED at 157.
Hunk #2 succeeded at 265 (offset 13 lines).
1 out of 2 hunks FAILED -- saving rejects to file Source/WebCore/loader/SubresourceLoader.cpp.rej
patching file Source/WebCore/loader/SubresourceLoader.h
Hunk #1 FAILED at 77.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/loader/SubresourceLoader.h.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/11267280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537326</commentid>
    <comment_count>8</comment_count>
      <attachid>122805</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-17 13:30:42 -0800</bug_when>
    <thetext>Created attachment 122805
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537521</commentid>
    <comment_count>9</comment_count>
      <attachid>122805</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 18:07:02 -0800</bug_when>
    <thetext>Comment on attachment 122805
Patch for landing

Clearing flags on attachment: 122805

Committed r105226: &lt;http://trac.webkit.org/changeset/105226&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537522</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 18:07:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121463</attachid>
            <date>2012-01-06 12:12:52 -0800</date>
            <delta_ts>2012-01-10 16:21:43 -0800</delta_ts>
            <desc>patch</desc>
            <filename>304.txt</filename>
            <type>text/plain</type>
            <size>4990</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDMwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTA2ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRW5zdXJlIHdlIGRvbid0IGNh
bmNlbCByZXZhbGlkYXRpb24gb2YgYSBDYWNoZWRSZXNvdXJjZQorICAgICAgICBpbiB0aGUgbWlk
ZGxlIG9mIHN1Y2Nlc3NmdWwgcmV2YWxpZGF0aW9uLgorICAgICAgICBJdCdzIG1vcmUgcmVsaWFi
bGUgdG8gZW5mb3JjZSB0aGlzIGluIENhY2hlZFJlc291cmNlIHRoYW4gaW4KKyAgICAgICAgU3Vi
cmVzb3VyY2VMb2FkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NTcxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0LCB0aGUgYnVnZ3kgY2FzZSByZXF1aXJlcyBhIG5vbi1zdHViYmVk
IHdpbmRvdy5wcmludCgpLgorCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2U6OmNsZWFyUmVzb3VyY2VUb1JldmFsaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2U6OnN3aXRjaENsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorCiAyMDEyLTAxLTA1ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhIEVsZW1lbnQ6IHNjcnViYmlu
ZyBpbiBmdWxsLXNjcmVlbiBtb2RlIGJyZWFrcyBwbGF5YmFjay4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkocmV2aXNpb24gMTA0MDQ2
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ2LDYgKzE0Niw3IEBACiAgICAgLCBtX2RlbGV0ZWQoZmFsc2UpCiAg
ICAgLCBtX2xydUluZGV4KDApCiAjZW5kaWYKKyAgICAsIG1fc3dpdGNoaW5nQ2xpZW50c1RvUmV2
YWxpZGF0ZWRSZXNvdXJjZShmYWxzZSkKICAgICAsIG1fbmV4dEluQWxsUmVzb3VyY2VzTGlzdCgw
KQogICAgICwgbV9wcmV2SW5BbGxSZXNvdXJjZXNMaXN0KDApCiAgICAgLCBtX25leHRJbkxpdmVS
ZXNvdXJjZXNMaXN0KDApCkBAIC01MjEsNiArNTIyLDkgQEAKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6
OmNsZWFyUmVzb3VyY2VUb1JldmFsaWRhdGUoKSAKIHsgCiAgICAgQVNTRVJUKG1fcmVzb3VyY2VU
b1JldmFsaWRhdGUpOworICAgIGlmIChtX3N3aXRjaGluZ0NsaWVudHNUb1JldmFsaWRhdGVkUmVz
b3VyY2UpCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIEEgcmVzb3VyY2UgbWF5IHN0YXJ0IHJl
dmFsaWRhdGlvbiBiZWZvcmUgdGhpcyBtZXRob2QgaGFzIGJlZW4gY2FsbGVkLCBzbyBjaGVjayB0
aGF0IHRoaXMgcmVzb3VyY2UgaXMgc3RpbGwgdGhlIHByb3h5IHJlc291cmNlIGJlZm9yZSBjbGVh
cmluZyBpdCBvdXQuCiAgICAgaWYgKG1fcmVzb3VyY2VUb1JldmFsaWRhdGUtPm1fcHJveHlSZXNv
dXJjZSA9PSB0aGlzKSB7CiAgICAgICAgIG1fcmVzb3VyY2VUb1JldmFsaWRhdGUtPm1fcHJveHlS
ZXNvdXJjZSA9IDA7CkBAIC01MzksNiArNTQzLDcgQEAKIAogICAgIExPRyhSZXNvdXJjZUxvYWRp
bmcsICJDYWNoZWRSZXNvdXJjZSAlcCBzd2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNl
ICVwIiwgdGhpcywgbV9yZXNvdXJjZVRvUmV2YWxpZGF0ZSk7CiAKKyAgICBtX3N3aXRjaGluZ0Ns
aWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UgPSB0cnVlOwogICAgIEhhc2hTZXQ8Q2FjaGVkUmVz
b3VyY2VIYW5kbGVCYXNlKj46Oml0ZXJhdG9yIGVuZCA9IG1faGFuZGxlc1RvUmV2YWxpZGF0ZS5l
bmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlKj46Oml0ZXJh
dG9yIGl0ID0gbV9oYW5kbGVzVG9SZXZhbGlkYXRlLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkg
ewogICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2UqIGhhbmRsZSA9ICppdDsKQEAgLTU3
MCw2ICs1NzUsNyBAQAogICAgICAgICBpZiAobV9yZXNvdXJjZVRvUmV2YWxpZGF0ZS0+bV9jbGll
bnRzLmNvbnRhaW5zKGNsaWVudHNUb01vdmVbbl0pKQogICAgICAgICAgICAgbV9yZXNvdXJjZVRv
UmV2YWxpZGF0ZS0+ZGlkQWRkQ2xpZW50KGNsaWVudHNUb01vdmVbbl0pOwogICAgIH0KKyAgICBt
X3N3aXRjaGluZ0NsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UgPSBmYWxzZTsKIH0KICAgICAK
IHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnVwZGF0ZVJlc3BvbnNlQWZ0ZXJSZXZhbGlkYXRpb24oY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgdmFsaWRhdGluZ1Jlc3BvbnNlKQpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgJKHJldmlzaW9uIDEwNDA0NikK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMDEsNiArMzAxLDggQEAKICAgICB1bnNpZ25lZCBtX2xydUluZGV4OwogI2Vu
ZGlmCiAKKyAgICBib29sIG1fc3dpdGNoaW5nQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSA6
IDE7CisKICAgICBDYWNoZWRSZXNvdXJjZSogbV9uZXh0SW5BbGxSZXNvdXJjZXNMaXN0OwogICAg
IENhY2hlZFJlc291cmNlKiBtX3ByZXZJbkFsbFJlc291cmNlc0xpc3Q7CiAgICAgCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEw
NDA0NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1NywxMiArMTU3LDkgQEAKICAgICAgICAgaWYgKHJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCkgPT0gMzA0KSB7CiAgICAgICAgICAgICAvLyAzMDQgTm90IG1vZGlmaWVk
IC8gVXNlIGxvY2FsIGNvcHkKICAgICAgICAgICAgIC8vIEV4aXN0aW5nIHJlc291cmNlIGlzIG9r
LCBqdXN0IHVzZSBpdCB1cGRhdGluZyB0aGUgZXhwaXJhdGlvbiB0aW1lLgotICAgICAgICAgICAg
bV9zdGF0ZSA9IFJldmFsaWRhdGluZzsKICAgICAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJldmFs
aWRhdGlvblN1Y2NlZWRlZChtX3Jlc291cmNlLCByZXNwb25zZSk7Ci0gICAgICAgICAgICBpZiAo
IXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpIHsKKyAgICAgICAgICAgIGlmICghcmVhY2hlZFRlcm1p
bmFsU3RhdGUoKSkKICAgICAgICAgICAgICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKHJlc3BvbnNlKTsKLSAgICAgICAgICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKGN1cnJl
bnRUaW1lKCkpOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
IAogICAgICAgICAvLyBEaWQgbm90IGdldCAzMDQgcmVzcG9uc2UsIGNvbnRpbnVlIGFzIGEgcmVn
dWxhciByZXNvdXJjZSBsb2FkLgpAQCAtMjQ1LDcgKzI0Miw3IEBACiAKIHZvaWQgU3VicmVzb3Vy
Y2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCiB7Ci0gICAgaWYg
KG1fc3RhdGUgIT0gSW5pdGlhbGl6ZWQgJiYgbV9zdGF0ZSAhPSBSZXZhbGlkYXRpbmcpCisgICAg
aWYgKG1fc3RhdGUgIT0gSW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQo
IXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpOwogICAgIEFTU0VSVCghbV9yZXNvdXJjZS0+cmVzb3Vy
Y2VUb1JldmFsaWRhdGUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuaAkocmV2aXNpb24gMTA0MDQ2KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDYgQEAKICAgICBl
bnVtIFN1YnJlc291cmNlTG9hZGVyU3RhdGUgewogICAgICAgICBVbmluaXRpYWxpemVkLAogICAg
ICAgICBJbml0aWFsaXplZCwKLSAgICAgICAgUmV2YWxpZGF0aW5nLAogICAgICAgICBGaW5pc2hp
bmcsCiAgICAgICAgIFJlbGVhc2luZwogICAgIH07Cg==
</data>
<flag name="review"
          id="121963"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121934</attachid>
            <date>2012-01-10 16:21:43 -0800</date>
            <delta_ts>2012-01-17 13:30:33 -0800</delta_ts>
            <desc>Are these ASSERTs enough?</desc>
            <filename>304_2.txt</filename>
            <type>text/plain</type>
            <size>5984</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDY0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTA2ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRW5zdXJlIHdlIGRvbid0IGNh
bmNlbCByZXZhbGlkYXRpb24gb2YgYSBDYWNoZWRSZXNvdXJjZQorICAgICAgICBpbiB0aGUgbWlk
ZGxlIG9mIHN1Y2Nlc3NmdWwgcmV2YWxpZGF0aW9uLgorICAgICAgICBJdCdzIG1vcmUgcmVsaWFi
bGUgdG8gZW5mb3JjZSB0aGlzIGluIENhY2hlZFJlc291cmNlIHRoYW4gaW4KKyAgICAgICAgU3Vi
cmVzb3VyY2VMb2FkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NTcxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0LCB0aGUgYnVnZ3kgY2FzZSByZXF1aXJlcyBhIG5vbi1zdHViYmVk
IHdpbmRvdy5wcmludCgpLgorCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2U6OmNsZWFyUmVzb3VyY2VUb1JldmFsaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2U6OnN3aXRjaENsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorCiAyMDEyLTAxLTEwICBUb255IENoYW5n
ICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTmVlZCB0byBoYW5kbGUgYWJzb2x1dGVs
eSBwb3NpdGlvbmVkIGVsZW1lbnRzIGluc2lkZSBmbGV4Ym94ZXMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkocmV2aXNpb24gMTA0NjQ1
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQwLDYgKzE0MCw3IEBACiAgICAgLCBtX3JlcXVlc3RlZEZyb21OZXR3
b3JraW5nTGF5ZXIoZmFsc2UpCiAgICAgLCBtX2luQ2FjaGUoZmFsc2UpCiAgICAgLCBtX2xvYWRp
bmcoZmFsc2UpCisgICAgLCBtX3N3aXRjaGluZ0NsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2Uo
ZmFsc2UpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fc3RhdHVzKFBlbmRpbmcpCiAjaWZu
ZGVmIE5ERUJVRwpAQCAtNTIxLDYgKzUyMiw5IEBACiB2b2lkIENhY2hlZFJlc291cmNlOjpjbGVh
clJlc291cmNlVG9SZXZhbGlkYXRlKCkgCiB7IAogICAgIEFTU0VSVChtX3Jlc291cmNlVG9SZXZh
bGlkYXRlKTsKKyAgICBpZiAobV9zd2l0Y2hpbmdDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNl
KQorICAgICAgICByZXR1cm47CisKICAgICAvLyBBIHJlc291cmNlIG1heSBzdGFydCByZXZhbGlk
YXRpb24gYmVmb3JlIHRoaXMgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZCwgc28gY2hlY2sgdGhhdCB0
aGlzIHJlc291cmNlIGlzIHN0aWxsIHRoZSBwcm94eSByZXNvdXJjZSBiZWZvcmUgY2xlYXJpbmcg
aXQgb3V0LgogICAgIGlmIChtX3Jlc291cmNlVG9SZXZhbGlkYXRlLT5tX3Byb3h5UmVzb3VyY2Ug
PT0gdGhpcykgewogICAgICAgICBtX3Jlc291cmNlVG9SZXZhbGlkYXRlLT5tX3Byb3h5UmVzb3Vy
Y2UgPSAwOwpAQCAtNTM5LDYgKzU0Myw3IEBACiAKICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAi
Q2FjaGVkUmVzb3VyY2UgJXAgc3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSAlcCIs
IHRoaXMsIG1fcmVzb3VyY2VUb1JldmFsaWRhdGUpOwogCisgICAgbV9zd2l0Y2hpbmdDbGllbnRz
VG9SZXZhbGlkYXRlZFJlc291cmNlID0gdHJ1ZTsKICAgICBIYXNoU2V0PENhY2hlZFJlc291cmNl
SGFuZGxlQmFzZSo+OjppdGVyYXRvciBlbmQgPSBtX2hhbmRsZXNUb1JldmFsaWRhdGUuZW5kKCk7
CiAgICAgZm9yIChIYXNoU2V0PENhY2hlZFJlc291cmNlSGFuZGxlQmFzZSo+OjppdGVyYXRvciBp
dCA9IG1faGFuZGxlc1RvUmV2YWxpZGF0ZS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlKiBoYW5kbGUgPSAqaXQ7CkBAIC01NjYsMTAg
KzU3MSwxNCBAQAogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBtb3ZlQ291bnQ7ICsrbikK
ICAgICAgICAgbV9yZXNvdXJjZVRvUmV2YWxpZGF0ZS0+YWRkQ2xpZW50VG9TZXQoY2xpZW50c1Rv
TW92ZVtuXSk7CiAgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG1vdmVDb3VudDsgKytuKSB7
CisgICAgICAgIC8vIENhbGxpbmcgZGlkQWRkQ2xpZW50IG1heSBkbyBhbnl0aGluZywgaW5jbHVk
aW5nIHRyeWluZyB0byBjYW5jZWwgcmV2YWxpZGF0aW9uLgorICAgICAgICAvLyBBc3NlcnQgdGhh
dCBpdCBkaWRuJ3Qgc3VjY2VlZC4KKyAgICAgICAgQVNTRVJUKG1fcmVzb3VyY2VUb1JldmFsaWRh
dGUpOwogICAgICAgICAvLyBDYWxsaW5nIGRpZEFkZENsaWVudCBmb3IgYSBjbGllbnQgbWF5IGVu
ZCB1cCByZW1vdmluZyBhbm90aGVyIGNsaWVudC4gSW4gdGhhdCBjYXNlIGl0IHdvbid0IGJlIGlu
IHRoZSBzZXQgYW55bW9yZS4KICAgICAgICAgaWYgKG1fcmVzb3VyY2VUb1JldmFsaWRhdGUtPm1f
Y2xpZW50cy5jb250YWlucyhjbGllbnRzVG9Nb3ZlW25dKSkKICAgICAgICAgICAgIG1fcmVzb3Vy
Y2VUb1JldmFsaWRhdGUtPmRpZEFkZENsaWVudChjbGllbnRzVG9Nb3ZlW25dKTsKICAgICB9Cisg
ICAgbV9zd2l0Y2hpbmdDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlID0gZmFsc2U7CiB9CiAg
ICAgCiB2b2lkIENhY2hlZFJlc291cmNlOjp1cGRhdGVSZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9u
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHZhbGlkYXRpbmdSZXNwb25zZSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCShyZXZpc2lvbiAxMDQ2
NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAkod29y
a2luZyBjb3B5KQpAQCAtMjkzLDYgKzI5Myw4IEBACiAgICAgYm9vbCBtX2luQ2FjaGUgOiAxOwog
ICAgIGJvb2wgbV9sb2FkaW5nIDogMTsKIAorICAgIGJvb2wgbV9zd2l0Y2hpbmdDbGllbnRzVG9S
ZXZhbGlkYXRlZFJlc291cmNlIDogMTsKKwogICAgIHVuc2lnbmVkIG1fdHlwZSA6IDQ7IC8vIFR5
cGUKICAgICB1bnNpZ25lZCBtX3N0YXR1cyA6IDM7IC8vIFN0YXR1cwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAJKHJldmlzaW9uIDEwNDY0NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyNSw2ICsxMjUsNyBAQAogICAgICAgICBhZGp1c3RTaXplKHJlc291cmNlLT5o
YXNDbGllbnRzKCksIGRlbHRhKTsKICAgICAKICAgICByZXZhbGlkYXRpbmdSZXNvdXJjZS0+c3dp
dGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpOworICAgIEFTU0VSVCghcmV2YWxpZGF0
aW5nUmVzb3VyY2UtPm1fZGVsZXRlZCk7CiAgICAgLy8gdGhpcyBkZWxldGVzIHRoZSByZXZhbGlk
YXRpbmcgcmVzb3VyY2UKICAgICByZXZhbGlkYXRpbmdSZXNvdXJjZS0+Y2xlYXJSZXNvdXJjZVRv
UmV2YWxpZGF0ZSgpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMDQ2NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcsMTIgKzE1Nyw5IEBA
CiAgICAgICAgIGlmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDMwNCkgewogICAgICAg
ICAgICAgLy8gMzA0IE5vdCBtb2RpZmllZCAvIFVzZSBsb2NhbCBjb3B5CiAgICAgICAgICAgICAv
LyBFeGlzdGluZyByZXNvdXJjZSBpcyBvaywganVzdCB1c2UgaXQgdXBkYXRpbmcgdGhlIGV4cGly
YXRpb24gdGltZS4KLSAgICAgICAgICAgIG1fc3RhdGUgPSBSZXZhbGlkYXRpbmc7CiAgICAgICAg
ICAgICBtZW1vcnlDYWNoZSgpLT5yZXZhbGlkYXRpb25TdWNjZWVkZWQobV9yZXNvdXJjZSwgcmVz
cG9uc2UpOwotICAgICAgICAgICAgaWYgKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKSB7CisgICAg
ICAgICAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCiAgICAgICAgICAgICAgICAgUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7Ci0gICAgICAgICAgICAg
ICAgZGlkRmluaXNoTG9hZGluZyhjdXJyZW50VGltZSgpKTsKLSAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfSAKICAgICAgICAgLy8gRGlkIG5vdCBnZXQgMzA0IHJl
c3BvbnNlLCBjb250aW51ZSBhcyBhIHJlZ3VsYXIgcmVzb3VyY2UgbG9hZC4KQEAgLTI1Miw3ICsy
NDksNyBAQAogCiB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRvdWJs
ZSBmaW5pc2hUaW1lKQogewotICAgIGlmIChtX3N0YXRlICE9IEluaXRpYWxpemVkICYmIG1fc3Rh
dGUgIT0gUmV2YWxpZGF0aW5nKQorICAgIGlmIChtX3N0YXRlICE9IEluaXRpYWxpemVkKQogICAg
ICAgICByZXR1cm47CiAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKICAgICBB
U1NFUlQoIW1fcmVzb3VyY2UtPnJlc291cmNlVG9SZXZhbGlkYXRlKCkpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDEwNDY0NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC03Nyw3ICs3Nyw2IEBACiAgICAgZW51bSBTdWJyZXNvdXJjZUxvYWRlclN0YXRlIHsKICAg
ICAgICAgVW5pbml0aWFsaXplZCwKICAgICAgICAgSW5pdGlhbGl6ZWQsCi0gICAgICAgIFJldmFs
aWRhdGluZywKICAgICAgICAgRmluaXNoaW5nLAogICAgICAgICBSZWxlYXNpbmcKICAgICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122805</attachid>
            <date>2012-01-17 13:30:42 -0800</date>
            <delta_ts>2012-01-17 18:07:02 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-75713-20120117133041.patch</filename>
            <type>text/plain</type>
            <size>6284</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTE4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTE3ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRW5zdXJlIHdlIGRvbid0IGNh
bmNlbCByZXZhbGlkYXRpb24gb2YgYSBDYWNoZWRSZXNvdXJjZQorICAgICAgICBpbiB0aGUgbWlk
ZGxlIG9mIHN1Y2Nlc3NmdWwgcmV2YWxpZGF0aW9uLgorICAgICAgICBJdCdzIG1vcmUgcmVsaWFi
bGUgdG8gZW5mb3JjZSB0aGlzIGluIENhY2hlZFJlc291cmNlIHRoYW4gaW4KKyAgICAgICAgU3Vi
cmVzb3VyY2VMb2FkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NTcxMworCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgTm8gbmV3IHRlc3QsIHRoZSBidWdneSBjYXNlIHJlcXVpcmVzIGEgbm9uLXN0dWJiZWQgd2lu
ZG93LnByaW50KCkuCisKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6
CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6
Y2xlYXJSZXNvdXJjZVRvUmV2YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZTo6c3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisKIDIwMTItMDEtMTcgIEFuZHJlYXMgS2xpbmcg
IDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFNwYWNlU3BsaXRTdHJpbmc6IFNo
YXJlIGVxdWl2YWxlbnQgc3RyaW5nIHBpZWNlIHZlY3RvcnMuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEwNTE4NikKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3NSwxMiArMTc1LDkgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbgogICAgICAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDQpIHsKICAg
ICAgICAgICAgIC8vIDMwNCBOb3QgbW9kaWZpZWQgLyBVc2UgbG9jYWwgY29weQogICAgICAgICAg
ICAgLy8gRXhpc3RpbmcgcmVzb3VyY2UgaXMgb2ssIGp1c3QgdXNlIGl0IHVwZGF0aW5nIHRoZSBl
eHBpcmF0aW9uIHRpbWUuCi0gICAgICAgICAgICBtX3N0YXRlID0gUmV2YWxpZGF0aW5nOwogICAg
ICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmV2YWxpZGF0aW9uU3VjY2VlZGVkKG1fcmVzb3VyY2Us
IHJlc3BvbnNlKTsKLSAgICAgICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkgewor
ICAgICAgICAgICAgaWYgKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKQogICAgICAgICAgICAgICAg
IFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwotICAgICAgICAg
ICAgICAgIGRpZEZpbmlzaExvYWRpbmcobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwot
ICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8v
IERpZCBub3QgZ2V0IDMwNCByZXNwb25zZSwgY29udGludWUgYXMgYSByZWd1bGFyIHJlc291cmNl
IGxvYWQuCkBAIC0yNjUsNyArMjYyLDcgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZUNhY2hlZAogCiB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRv
dWJsZSBmaW5pc2hUaW1lKQogewotICAgIGlmIChtX3N0YXRlICE9IEluaXRpYWxpemVkICYmIG1f
c3RhdGUgIT0gUmV2YWxpZGF0aW5nKQorICAgIGlmIChtX3N0YXRlICE9IEluaXRpYWxpemVkKQog
ICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKICAg
ICBBU1NFUlQoIW1fcmVzb3VyY2UtPnJlc291cmNlVG9SZXZhbGlkYXRlKCkpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDEwNTE4NikK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC03OCw3ICs3OCw2IEBAIHByaXZhdGU6CiAgICAgZW51bSBTdWJyZXNvdXJjZUxvYWRl
clN0YXRlIHsKICAgICAgICAgVW5pbml0aWFsaXplZCwKICAgICAgICAgSW5pdGlhbGl6ZWQsCi0g
ICAgICAgIFJldmFsaWRhdGluZywKICAgICAgICAgRmluaXNoaW5nCiAgICAgfTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZp
c2lvbiAxMDUxODYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiArMTQwLDcgQEAgQ2FjaGVkUmVzb3VyY2U6
OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlcwogICAgICwgbV9yZXF1ZXN0ZWRGcm9tTmV0d29ya2lu
Z0xheWVyKGZhbHNlKQogICAgICwgbV9pbkNhY2hlKGZhbHNlKQogICAgICwgbV9sb2FkaW5nKGZh
bHNlKQorICAgICwgbV9zd2l0Y2hpbmdDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKGZhbHNl
KQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3N0YXR1cyhQZW5kaW5nKQogI2lmbmRlZiBO
REVCVUcKQEAgLTUyMCw2ICs1MjEsOSBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpzZXRSZXNvdXJj
ZVRvUmV2YWxpCiB2b2lkIENhY2hlZFJlc291cmNlOjpjbGVhclJlc291cmNlVG9SZXZhbGlkYXRl
KCkgCiB7IAogICAgIEFTU0VSVChtX3Jlc291cmNlVG9SZXZhbGlkYXRlKTsKKyAgICBpZiAobV9z
d2l0Y2hpbmdDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKQorICAgICAgICByZXR1cm47CisK
ICAgICAvLyBBIHJlc291cmNlIG1heSBzdGFydCByZXZhbGlkYXRpb24gYmVmb3JlIHRoaXMgbWV0
aG9kIGhhcyBiZWVuIGNhbGxlZCwgc28gY2hlY2sgdGhhdCB0aGlzIHJlc291cmNlIGlzIHN0aWxs
IHRoZSBwcm94eSByZXNvdXJjZSBiZWZvcmUgY2xlYXJpbmcgaXQgb3V0LgogICAgIGlmIChtX3Jl
c291cmNlVG9SZXZhbGlkYXRlLT5tX3Byb3h5UmVzb3VyY2UgPT0gdGhpcykgewogICAgICAgICBt
X3Jlc291cmNlVG9SZXZhbGlkYXRlLT5tX3Byb3h5UmVzb3VyY2UgPSAwOwpAQCAtNTM4LDYgKzU0
Miw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnN3aXRjaENsaWVudHNUb1JldmEKIAogICAgIExP
RyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZSAlcCBzd2l0Y2hDbGllbnRzVG9SZXZh
bGlkYXRlZFJlc291cmNlICVwIiwgdGhpcywgbV9yZXNvdXJjZVRvUmV2YWxpZGF0ZSk7CiAKKyAg
ICBtX3N3aXRjaGluZ0NsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UgPSB0cnVlOwogICAgIEhh
c2hTZXQ8Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlKj46Oml0ZXJhdG9yIGVuZCA9IG1faGFuZGxl
c1RvUmV2YWxpZGF0ZS5lbmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8Q2FjaGVkUmVzb3VyY2VIYW5k
bGVCYXNlKj46Oml0ZXJhdG9yIGl0ID0gbV9oYW5kbGVzVG9SZXZhbGlkYXRlLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2UqIGhhbmRs
ZSA9ICppdDsKQEAgLTU2NSwxMCArNTcwLDE0IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnN3aXRj
aENsaWVudHNUb1JldmEKICAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgbW92ZUNvdW50OyAr
K24pCiAgICAgICAgIG1fcmVzb3VyY2VUb1JldmFsaWRhdGUtPmFkZENsaWVudFRvU2V0KGNsaWVu
dHNUb01vdmVbbl0pOwogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBtb3ZlQ291bnQ7ICsr
bikgeworICAgICAgICAvLyBDYWxsaW5nIGRpZEFkZENsaWVudCBtYXkgZG8gYW55dGhpbmcsIGlu
Y2x1ZGluZyB0cnlpbmcgdG8gY2FuY2VsIHJldmFsaWRhdGlvbi4KKyAgICAgICAgLy8gQXNzZXJ0
IHRoYXQgaXQgZGlkbid0IHN1Y2NlZWQuCisgICAgICAgIEFTU0VSVChtX3Jlc291cmNlVG9SZXZh
bGlkYXRlKTsKICAgICAgICAgLy8gQ2FsbGluZyBkaWRBZGRDbGllbnQgZm9yIGEgY2xpZW50IG1h
eSBlbmQgdXAgcmVtb3ZpbmcgYW5vdGhlciBjbGllbnQuIEluIHRoYXQgY2FzZSBpdCB3b24ndCBi
ZSBpbiB0aGUgc2V0IGFueW1vcmUuCiAgICAgICAgIGlmIChtX3Jlc291cmNlVG9SZXZhbGlkYXRl
LT5tX2NsaWVudHMuY29udGFpbnMoY2xpZW50c1RvTW92ZVtuXSkpCiAgICAgICAgICAgICBtX3Jl
c291cmNlVG9SZXZhbGlkYXRlLT5kaWRBZGRDbGllbnQoY2xpZW50c1RvTW92ZVtuXSk7CiAgICAg
fQorICAgIG1fc3dpdGNoaW5nQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSA9IGZhbHNlOwog
fQogICAgIAogdm9pZCBDYWNoZWRSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2VBZnRlclJldmFsaWRh
dGlvbihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiB2YWxpZGF0aW5nUmVzcG9uc2UpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAkocmV2aXNpb24g
MTA1MTg2KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5Myw2ICsyOTMsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9p
bkNhY2hlIDogMTsKICAgICBib29sIG1fbG9hZGluZyA6IDE7CiAKKyAgICBib29sIG1fc3dpdGNo
aW5nQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSA6IDE7CisKICAgICB1bnNpZ25lZCBtX3R5
cGUgOiA0OyAvLyBUeXBlCiAgICAgdW5zaWduZWQgbV9zdGF0dXMgOiAzOyAvLyBTdGF0dXMKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCShyZXZp
c2lvbiAxMDUxODYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNiArMTI1LDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6
cmV2YWxpZGF0aW9uU3VjY2VlZGVkKAogICAgICAgICBhZGp1c3RTaXplKHJlc291cmNlLT5oYXND
bGllbnRzKCksIGRlbHRhKTsKICAgICAKICAgICByZXZhbGlkYXRpbmdSZXNvdXJjZS0+c3dpdGNo
Q2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpOworICAgIEFTU0VSVCghcmV2YWxpZGF0aW5n
UmVzb3VyY2UtPm1fZGVsZXRlZCk7CiAgICAgLy8gdGhpcyBkZWxldGVzIHRoZSByZXZhbGlkYXRp
bmcgcmVzb3VyY2UKICAgICByZXZhbGlkYXRpbmdSZXNvdXJjZS0+Y2xlYXJSZXNvdXJjZVRvUmV2
YWxpZGF0ZSgpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>