<?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>149011</bug_id>
          
          <creation_ts>2015-09-09 15:03:10 -0700</creation_ts>
          <short_desc>Fix null dereferences from static analysis</short_desc>
          <delta_ts>2024-03-11 17:55:33 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>ahmad.saleem792</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1124706</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-09 15:03:10 -0700</bug_when>
    <thetext>I guess this will make things better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124707</commentid>
    <comment_count>1</comment_count>
      <attachid>260876</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-09 15:05:49 -0700</bug_when>
    <thetext>Created attachment 260876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124716</commentid>
    <comment_count>2</comment_count>
      <attachid>260881</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-09 15:22:04 -0700</bug_when>
    <thetext>Created attachment 260881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124750</commentid>
    <comment_count>3</comment_count>
      <attachid>260881</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-09 16:42:37 -0700</bug_when>
    <thetext>Comment on attachment 260881
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        Fix null dereferences from static analysis

You mean “fix null dereferences detected by static analysis tool”?

&gt; Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:188
&gt; -    RELEASE_ASSERT(record-&gt;patchpointID == exit.m_stackmapID);
&gt; +    RELEASE_ASSERT(record &amp;&amp; record-&gt;patchpointID == exit.m_stackmapID);

In a normal assert we would have done two separate ones, so we could tell of the two &amp;&amp; was failing. Not sure if that thinking applies to RELEASE_ASSERT.

&gt; Source/WTF/wtf/ParkingLot.cpp:330
&gt; +    RELEASE_ASSERT(oldHashtable &amp;&amp; newSize &gt; oldHashtable-&gt;size);

Same comment about &amp;&amp; in assertions.

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:623
&gt; -    if (isRemoved())
&gt; +    if (!m_source)
&gt;          return;

Isn’t the static analyzer smart enough to understand that this is the same thing?

&gt; Source/WebCore/contentextensions/CombinedURLFilters.cpp:273
&gt; -            ASSERT_WITH_MESSAGE(sourceActiveSubtree, &quot;The root should always have a valid generator.&quot;);
&gt; +            RELEASE_ASSERT_WITH_MESSAGE(sourceActiveSubtree, &quot;The root should always have a valid generator.&quot;);

This doesn’t seem like a good change to me. How is adding a null check at runtime helpful to the project?

&gt; Source/WebCore/css/SelectorCheckerTestFunctions.h:-185
&gt; -        unsigned rangeSubtagsEndIndex = rangeLength;

This is not a fix to a null dereference.

&gt; Source/WebCore/rendering/CounterNode.cpp:84
&gt; +                    if (nextSibling)
&gt; +                        nextSibling-&gt;m_previousSibling = child;

I do think this is a real bug. Can we figure out how to make a test case for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124806</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-09 19:12:05 -0700</bug_when>
    <thetext>I think that it&apos;s important to tell which part of release assert fails. Otherwise, investigating frequent crashes would be unnecessarily harder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2020309</commentid>
    <comment_count>5</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-03-11 17:55:33 -0700</bug_when>
    <thetext>Still can be applied:

&gt;&gt; CounterNode.cpp:

https://searchfox.org/wubkat/rev/711120e7edec012527620d07bf63d85713a180fd/Source/WebCore/rendering/CounterNode.cpp#78

&gt;&gt; ParkingLot.cpp:

https://searchfox.org/wubkat/rev/711120e7edec012527620d07bf63d85713a180fd/Source/WTF/wtf/ParkingLot.cpp#384

&gt;&gt; SourceBuffer.cpp:

https://searchfox.org/wubkat/rev/711120e7edec012527620d07bf63d85713a180fd/Source/WebCore/Modules/mediasource/SourceBuffer.cpp#655

&gt;&gt; CombinedURLFilters.cpp:

https://searchfox.org/wubkat/rev/711120e7edec012527620d07bf63d85713a180fd/Source/WebCore/contentextensions/CombinedURLFilters.cpp#227

&gt;&gt; 

___

Can&apos;t find - FTLOSRExitCompiler.cpp change and TestNetscapePlugIn/main.cpp.

This is not needed in SourceBuffer.cpp:

https://searchfox.org/wubkat/rev/711120e7edec012527620d07bf63d85713a180fd/Source/WebCore/Modules/mediasource/SourceBuffer.cpp#687

This is not needed in SelectorCheckerTestFunctions.h:

https://searchfox.org/wubkat/rev/711120e7edec012527620d07bf63d85713a180fd/Source/WebCore/css/SelectorCheckerTestFunctions.h#243

___

Just wanted to update.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260876</attachid>
            <date>2015-09-09 15:05:49 -0700</date>
            <delta_ts>2015-09-09 15:22:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149011-20150909150543.patch</filename>
            <type>text/plain</type>
            <size>9519</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5NTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE1LTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgRml4IG51bGwgZGVyZWZlcmVuY2VzIGZyb20gc3RhdGljIGFuYWx5c2lzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkwMTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZ0bC9GVExP
U1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGVTdHViKToKKwog
MjAxNS0wOS0wOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgYmFjayBpbiByMTg5NTE2LgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTg5
NTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNyArMTg1LDcgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0
dWIoCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0gICAgUkVMRUFTRV9BU1NFUlQo
cmVjb3JkLT5wYXRjaHBvaW50SUQgPT0gZXhpdC5tX3N0YWNrbWFwSUQpOworICAgIFJFTEVBU0Vf
QVNTRVJUKHJlY29yZCAmJiByZWNvcmQtPnBhdGNocG9pbnRJRCA9PSBleGl0Lm1fc3RhY2ttYXBJ
RCk7CiAgICAgCiAgICAgLy8gVGhpcyBjb2RlIHJlcXVpcmVzIGZyYW1lUG9pbnRlclJlZ2lzdGVy
IGlzIHRoZSBzYW1lIGFzIGNhbGxGcmFtZVJlZ2lzdGVyCiAgICAgc3RhdGljX2Fzc2VydChNYWNy
b0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIgPT0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsICJNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyIG11c3QgYmUgdGhlIHNhbWUiKTsKSW5kZXg6IFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
ODk1NTMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDE1LTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgRml4IG51bGwgZGVyZWZlcmVuY2VzIGZyb20gc3RhdGljIGFuYWx5
c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkw
MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9QYXJraW5nTG90LmNwcDoKKwogMjAxNS0wOS0wOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgR0Mgc3RhY2sgc2NhbiBzaG91bGQgaW5jbHVkZSBBQkkgcmVkIHpv
bmUuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcAkocmV2aXNpb24gMTg5NTIxKQorKysgU291cmNl
L1dURi93dGYvUGFya2luZ0xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyNyw3ICszMjcsNyBA
QCB2b2lkIGVuc3VyZUhhc2h0YWJsZVNpemUodW5zaWduZWQgbnVtVGhyCiAgICAgfQogCiAgICAg
dW5zaWduZWQgbmV3U2l6ZSA9IG51bVRocmVhZHMgKiBncm93dGhGYWN0b3IgKiBtYXhMb2FkRmFj
dG9yOwotICAgIFJFTEVBU0VfQVNTRVJUKG5ld1NpemUgPiBvbGRIYXNodGFibGUtPnNpemUpOwor
ICAgIFJFTEVBU0VfQVNTRVJUKG9sZEhhc2h0YWJsZSAmJiBuZXdTaXplID4gb2xkSGFzaHRhYmxl
LT5zaXplKTsKICAgICAKICAgICBIYXNodGFibGUqIG5ld0hhc2h0YWJsZSA9IEhhc2h0YWJsZTo6
Y3JlYXRlKG5ld1NpemUpOwogICAgIGlmICh2ZXJib3NlKQpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMTg5NTUzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTUtMDktMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXggbnVsbCBkZXJlZmVyZW5jZXMgZnJvbSBzdGF0
aWMgYW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0OTAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUpOgor
ICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Z2VuZXJhdGVJbmZpeFVuc3VpdGFibGVG
b3JSZXZlcnNlU3VmZml4VHJlZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RG
dW5jdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoZXNMYW5nUHNldWRvQ2xhc3MpOgor
ICAgICAgICAqIHJlbmRlcmluZy9Db3VudGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b3VudGVyTm9kZTo6fkNvdW50ZXJOb2RlKToKKwogMjAxNS0wOS0wOSAgTWFudWVsIFJlZ28gQ2Fz
YXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdyaWRdIFBlcmNlbnRh
Z2UgY29sdW1ucyBzaG91bGRuJ3QgaW5jbHVkZSBib3JkZXIgYW5kIHBhZGRpbmcKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHAJKHJldmlzaW9uIDE4OTUyMSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUyLDIxICs2NTIsMjIgQEAg
dm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcAogICAgIC8vIDUuIFF1ZXVl
IGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZWVuZCBhdCB0aGlzIFNv
dXJjZUJ1ZmZlciBvYmplY3QuCiAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudXBkYXRl
ZW5kRXZlbnQpOwogCi0gICAgaWYgKG1fc291cmNlKQorICAgIGlmIChtX3NvdXJjZSkgewogICAg
ICAgICBtX3NvdXJjZS0+bW9uaXRvclNvdXJjZUJ1ZmZlcnMoKTsKIAotICAgIE1lZGlhVGltZSBj
dXJyZW50TWVkaWFUaW1lID0gbV9zb3VyY2UtPmN1cnJlbnRUaW1lKCk7Ci0gICAgZm9yIChhdXRv
JiB0cmFja0J1ZmZlclBhaXIgOiBtX3RyYWNrQnVmZmVyTWFwKSB7Ci0gICAgICAgIFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciA9IHRyYWNrQnVmZmVyUGFpci52YWx1ZTsKLSAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiB0cmFja0lEID0gdHJhY2tCdWZmZXJQYWlyLmtleTsKLQotICAgICAgICBp
ZiAodHJhY2tCdWZmZXIubmVlZHNSZWVucXVldWVpbmcpIHsKLSAgICAgICAgICAgIExPRyhNZWRp
YVNvdXJjZSwgIlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRl
KCVwKSAtIHJlZW5xdWV1aW5nIGF0IHRpbWUgKCVzKSIsIHRoaXMsIHRvU3RyaW5nKGN1cnJlbnRN
ZWRpYVRpbWUpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgcmVlbnF1ZXVlTWVkaWFGb3JU
aW1lKHRyYWNrQnVmZmVyLCB0cmFja0lELCBjdXJyZW50TWVkaWFUaW1lKTsKLSAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICBwcm92aWRlTWVkaWFEYXRhKHRyYWNrQnVmZmVyLCB0cmFja0lEKTsK
KyAgICAgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUgPSBtX3NvdXJjZS0+Y3VycmVudFRp
bWUoKTsKKyAgICAgICAgZm9yIChhdXRvJiB0cmFja0J1ZmZlclBhaXIgOiBtX3RyYWNrQnVmZmVy
TWFwKSB7CisgICAgICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSB0cmFja0J1ZmZl
clBhaXIudmFsdWU7CisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQgPSB0
cmFja0J1ZmZlclBhaXIua2V5OworCisgICAgICAgICAgICBpZiAodHJhY2tCdWZmZXIubmVlZHNS
ZWVucXVldWVpbmcpIHsKKyAgICAgICAgICAgICAgICBMT0coTWVkaWFTb3VyY2UsICJTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSglcCkgLSByZWVucXVldWlu
ZyBhdCB0aW1lICglcykiLCB0aGlzLCB0b1N0cmluZyhjdXJyZW50TWVkaWFUaW1lKS51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgICAgICAgICByZWVucXVldWVNZWRpYUZvclRpbWUodHJhY2tCdWZm
ZXIsIHRyYWNrSUQsIGN1cnJlbnRNZWRpYVRpbWUpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgcHJvdmlkZU1lZGlhRGF0YSh0cmFja0J1ZmZlciwgdHJhY2tJRCk7CisgICAg
ICAgIH0KICAgICB9Ci0KKyAgICAKICAgICByZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZCgpOwog
ICAgIGlmIChleHRyYU1lbW9yeUNvc3QoKSA+IHRoaXMtPm1heGltdW1CdWZmZXJTaXplKCkpCiAg
ICAgICAgIG1fYnVmZmVyRnVsbCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAJKHJldmlzaW9u
IDE4OTUyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJM
RmlsdGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgdm9p
ZCBnZW5lcmF0ZUluZml4VW5zdWl0YWJsZUZvclJlCiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEFTU0VSVF9X
SVRIX01FU1NBR0Uoc291cmNlQWN0aXZlU3VidHJlZSwgIlRoZSByb290IHNob3VsZCBhbHdheXMg
aGF2ZSBhIHZhbGlkIGdlbmVyYXRvci4iKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJ
VEhfTUVTU0FHRShzb3VyY2VBY3RpdmVTdWJ0cmVlLCAiVGhlIHJvb3Qgc2hvdWxkIGFsd2F5cyBo
YXZlIGEgdmFsaWQgZ2VuZXJhdG9yLiIpOwogCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHN0
YWNrSW5kZXggPSBiZWdpbm5pbmcgKyAxOyBzdGFja0luZGV4IDw9IGVuZDsgKytzdGFja0luZGV4
KSB7CiAgICAgICAgICAgICAgICAgSW1tdXRhYmxlQ2hhck5GQU5vZGVCdWlsZGVyJiBzb3VyY2VO
b2RlID0gc291cmNlQWN0aXZlU3VidHJlZS0+bmZhTm9kZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaAkocmV2aXNpb24gMTg5
NTIxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDcgKzE4Miw2IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBt
YXRjaGVzTGFuZ1BzZXVkb0NsYXMKICAgICAgICAgCiAgICAgICAgIHVuc2lnbmVkIHJhbmdlTGVu
Z3RoID0gcmFuZ2VTdHJpbmdWaWV3Lmxlbmd0aCgpOwogICAgICAgICB1bnNpZ25lZCByYW5nZVN1
YnRhZ3NTdGFydEluZGV4ID0gMDsKLSAgICAgICAgdW5zaWduZWQgcmFuZ2VTdWJ0YWdzRW5kSW5k
ZXggPSByYW5nZUxlbmd0aDsKICAgICAgICAgdW5zaWduZWQgbGFzdE1hdGNoZWRMYW5ndWFnZVN1
YnRhZ0luZGV4ID0gMDsKIAogICAgICAgICBib29sIG1hdGNoZWRSYW5nZSA9IHRydWU7CkBAIC0x
OTEsNyArMTkwLDcgQEAgQUxXQVlTX0lOTElORSBib29sIG1hdGNoZXNMYW5nUHNldWRvQ2xhcwog
ICAgICAgICAgICAgICAgIHJhbmdlU3VidGFnc1N0YXJ0SW5kZXggKz0gMTsKICAgICAgICAgICAg
IGlmIChyYW5nZVN1YnRhZ3NTdGFydEluZGV4ID4gbGFuZ3VhZ2VMZW5ndGgpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgcmFuZ2VTdWJ0YWdzRW5kSW5kZXggPSBz
dGQ6Om1pbjx1bnNpZ25lZD4ocmFuZ2VTdHJpbmdWaWV3LmZpbmQoJy0nLCByYW5nZVN1YnRhZ3NT
dGFydEluZGV4KSwgcmFuZ2VMZW5ndGgpOworICAgICAgICAgICAgdW5zaWduZWQgcmFuZ2VTdWJ0
YWdzRW5kSW5kZXggPSBzdGQ6Om1pbjx1bnNpZ25lZD4ocmFuZ2VTdHJpbmdWaWV3LmZpbmQoJy0n
LCByYW5nZVN1YnRhZ3NTdGFydEluZGV4KSwgcmFuZ2VMZW5ndGgpOwogICAgICAgICAgICAgU3Ry
aW5nVmlldyByYW5nZVN1YnRhZyA9IHJhbmdlU3RyaW5nVmlldy5zdWJzdHJpbmcocmFuZ2VTdWJ0
YWdzU3RhcnRJbmRleCwgcmFuZ2VTdWJ0YWdzRW5kSW5kZXggLSByYW5nZVN1YnRhZ3NTdGFydElu
ZGV4KTsKICAgICAgICAgICAgIGlmICghY29udGFpbnNsYW5ndWFnZVN1YnRhZ01hdGNoaW5nUmFu
Z2UobGFuZ3VhZ2VTdHJpbmdWaWV3LCByYW5nZVN1YnRhZywgbGFuZ3VhZ2VMZW5ndGgsIGxhc3RN
YXRjaGVkTGFuZ3VhZ2VTdWJ0YWdJbmRleCkpIHsKICAgICAgICAgICAgICAgICBtYXRjaGVkUmFu
Z2UgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db3VudGVyTm9kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmNw
cAkocmV2aXNpb24gMTg5NTIxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJO
b2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsOCBAQCBDb3VudGVyTm9kZTo6fkNv
dW50ZXJOb2RlKCkKICAgICAgICAgICAgICAgICAgICAgY2hpbGQtPm1fcHJldmlvdXNTaWJsaW5n
ID0gb2xkUHJldmlvdXNTaWJsaW5nOwogICAgICAgICAgICAgICAgICAgICBvbGRQcmV2aW91c1Np
YmxpbmctPm1fbmV4dFNpYmxpbmcgPSBjaGlsZDsKICAgICAgICAgICAgICAgICAgICAgY2hpbGQt
Pm1fbmV4dFNpYmxpbmcgPSBuZXh0U2libGluZzsKLSAgICAgICAgICAgICAgICAgICAgbmV4dFNp
YmxpbmctPm1fcHJldmlvdXNTaWJsaW5nID0gY2hpbGQ7CisgICAgICAgICAgICAgICAgICAgIGlm
IChuZXh0U2libGluZykKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTaWJsaW5nLT5tX3By
ZXZpb3VzU2libGluZyA9IGNoaWxkOwogICAgICAgICAgICAgICAgICAgICBvbGRQcmV2aW91c1Np
YmxpbmcgPSBjaGlsZDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY2hpbGQg
PSBuZXh0Q2hpbGQ7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxODk1NTMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wOS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCBudWxsIGRlcmVmZXJlbmNlcyBm
cm9tIHN0YXRpYyBhbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ5MDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHA6
CisgICAgICAgIChOUFBfU2V0V2luZG93KToKKyAgICAgICAgKGV4ZWN1dGVTY3JpcHQpOgorCiAy
MDE1LTA5LTA5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IFVwZGF0ZSBMYXlvdXRUZXN0UmVsYXkgeGNjb25maWcgZmlsZS4KSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAJKHJldmlzaW9uIDE4
OTUyMSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzcwLDkgKzM3MCwxMCBAQCBOUEVycm9yIE5QUF9TZXRXaW5k
b3coTlBQIGluc3RhbmNlLCBOUFdpCiAgICAgICAgICAgICBvYmotPmV2ZW50TG9nZ2luZyA9IHRy
dWU7CiAgICAgICAgICAgICBleGVjdXRlU2NyaXB0KG9iaiwgImV2ZW50U2VuZGVyLmtleURvd24o
J0EnKTsiKTsKICAgICAgICAgfQorICAgICAgICBpZiAob2JqLT5wbHVnaW5UZXN0KQorICAgICAg
ICAgICAgcmV0dXJuIG9iai0+cGx1Z2luVGVzdC0+TlBQX1NldFdpbmRvdyh3aW5kb3cpOwogICAg
IH0KLSAgICAKLSAgICByZXR1cm4gb2JqLT5wbHVnaW5UZXN0LT5OUFBfU2V0V2luZG93KHdpbmRv
dyk7CisgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CiB9CiAKIHN0YXRpYyB2b2lkIGV4
ZWN1dGVTY3JpcHQoY29uc3QgUGx1Z2luT2JqZWN0KiBvYmosIGNvbnN0IGNoYXIqIHNjcmlwdCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260881</attachid>
            <date>2015-09-09 15:22:04 -0700</date>
            <delta_ts>2015-09-09 16:42:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149011-20150909152158.patch</filename>
            <type>text/plain</type>
            <size>8569</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5NTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE1LTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgRml4IG51bGwgZGVyZWZlcmVuY2VzIGZyb20gc3RhdGljIGFuYWx5c2lzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkwMTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZ0bC9GVExP
U1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGVTdHViKToKKwog
MjAxNS0wOS0wOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgYmFjayBpbiByMTg5NTE2LgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTg5
NTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNyArMTg1LDcgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0
dWIoCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0gICAgUkVMRUFTRV9BU1NFUlQo
cmVjb3JkLT5wYXRjaHBvaW50SUQgPT0gZXhpdC5tX3N0YWNrbWFwSUQpOworICAgIFJFTEVBU0Vf
QVNTRVJUKHJlY29yZCAmJiByZWNvcmQtPnBhdGNocG9pbnRJRCA9PSBleGl0Lm1fc3RhY2ttYXBJ
RCk7CiAgICAgCiAgICAgLy8gVGhpcyBjb2RlIHJlcXVpcmVzIGZyYW1lUG9pbnRlclJlZ2lzdGVy
IGlzIHRoZSBzYW1lIGFzIGNhbGxGcmFtZVJlZ2lzdGVyCiAgICAgc3RhdGljX2Fzc2VydChNYWNy
b0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIgPT0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsICJNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyIG11c3QgYmUgdGhlIHNhbWUiKTsKSW5kZXg6IFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
ODk1NTMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDE1LTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgRml4IG51bGwgZGVyZWZlcmVuY2VzIGZyb20gc3RhdGljIGFuYWx5
c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkw
MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9QYXJraW5nTG90LmNwcDoKKwogMjAxNS0wOS0wOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgR0Mgc3RhY2sgc2NhbiBzaG91bGQgaW5jbHVkZSBBQkkgcmVkIHpv
bmUuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcAkocmV2aXNpb24gMTg5NTIxKQorKysgU291cmNl
L1dURi93dGYvUGFya2luZ0xvdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyNyw3ICszMjcsNyBA
QCB2b2lkIGVuc3VyZUhhc2h0YWJsZVNpemUodW5zaWduZWQgbnVtVGhyCiAgICAgfQogCiAgICAg
dW5zaWduZWQgbmV3U2l6ZSA9IG51bVRocmVhZHMgKiBncm93dGhGYWN0b3IgKiBtYXhMb2FkRmFj
dG9yOwotICAgIFJFTEVBU0VfQVNTRVJUKG5ld1NpemUgPiBvbGRIYXNodGFibGUtPnNpemUpOwor
ICAgIFJFTEVBU0VfQVNTRVJUKG9sZEhhc2h0YWJsZSAmJiBuZXdTaXplID4gb2xkSGFzaHRhYmxl
LT5zaXplKTsKICAgICAKICAgICBIYXNodGFibGUqIG5ld0hhc2h0YWJsZSA9IEhhc2h0YWJsZTo6
Y3JlYXRlKG5ld1NpemUpOwogICAgIGlmICh2ZXJib3NlKQpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMTg5NTUzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTUtMDktMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXggbnVsbCBkZXJlZmVyZW5jZXMgZnJvbSBzdGF0
aWMgYW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0OTAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUpOgor
ICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Z2VuZXJhdGVJbmZpeFVuc3VpdGFibGVG
b3JSZXZlcnNlU3VmZml4VHJlZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RG
dW5jdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoZXNMYW5nUHNldWRvQ2xhc3MpOgor
ICAgICAgICAqIHJlbmRlcmluZy9Db3VudGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b3VudGVyTm9kZTo6fkNvdW50ZXJOb2RlKToKKwogMjAxNS0wOS0wOSAgTWFudWVsIFJlZ28gQ2Fz
YXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdyaWRdIFBlcmNlbnRh
Z2UgY29sdW1ucyBzaG91bGRuJ3QgaW5jbHVkZSBib3JkZXIgYW5kIHBhZGRpbmcKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHAJKHJldmlzaW9uIDE4OTUyMSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjE5LDcgKzYxOSw3IEBAIHZv
aWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmUKIAogdm9pZCBTb3VyY2VCdWZm
ZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRl
KiwgQXBwZW5kUmVzdWx0IHJlc3VsdCkKIHsKLSAgICBpZiAoaXNSZW1vdmVkKCkpCisgICAgaWYg
KCFtX3NvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gU2VjdGlvbiAzLjUuNSBCdWZm
ZXIgQXBwZW5kIEFsZ29yaXRobSwgY3RkLgpAQCAtNjUyLDggKzY1Miw3IEBAIHZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXAKICAgICAvLyA1LiBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1cGRhdGVlbmQgYXQgdGhpcyBTb3VyY2VCdWZmZXIg
b2JqZWN0LgogICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnVwZGF0ZWVuZEV2ZW50KTsK
IAotICAgIGlmIChtX3NvdXJjZSkKLSAgICAgICAgbV9zb3VyY2UtPm1vbml0b3JTb3VyY2VCdWZm
ZXJzKCk7CisgICAgbV9zb3VyY2UtPm1vbml0b3JTb3VyY2VCdWZmZXJzKCk7CiAKICAgICBNZWRp
YVRpbWUgY3VycmVudE1lZGlhVGltZSA9IG1fc291cmNlLT5jdXJyZW50VGltZSgpOwogICAgIGZv
ciAoYXV0byYgdHJhY2tCdWZmZXJQYWlyIDogbV90cmFja0J1ZmZlck1hcCkgewpJbmRleDogU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZp
bHRlcnMuY3BwCShyZXZpc2lvbiAxODk1MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzAsNyAr
MjcwLDcgQEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVJbmZpeFVuc3VpdGFibGVGb3JSZQogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHNvdXJjZUFjdGl2ZVN1YnRyZWUsICJUaGUg
cm9vdCBzaG91bGQgYWx3YXlzIGhhdmUgYSB2YWxpZCBnZW5lcmF0b3IuIik7CisgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0Uoc291cmNlQWN0aXZlU3VidHJlZSwgIlRoZSBy
b290IHNob3VsZCBhbHdheXMgaGF2ZSBhIHZhbGlkIGdlbmVyYXRvci4iKTsKIAogICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBzdGFja0luZGV4ID0gYmVnaW5uaW5nICsgMTsgc3RhY2tJbmRleCA8
PSBlbmQ7ICsrc3RhY2tJbmRleCkgewogICAgICAgICAgICAgICAgIEltbXV0YWJsZUNoYXJORkFO
b2RlQnVpbGRlciYgc291cmNlTm9kZSA9IHNvdXJjZUFjdGl2ZVN1YnRyZWUtPm5mYU5vZGU7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rp
b25zLmgJKHJldmlzaW9uIDE4OTUyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNo
ZWNrZXJUZXN0RnVuY3Rpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw3ICsxODIsNiBAQCBB
TFdBWVNfSU5MSU5FIGJvb2wgbWF0Y2hlc0xhbmdQc2V1ZG9DbGFzCiAgICAgICAgIAogICAgICAg
ICB1bnNpZ25lZCByYW5nZUxlbmd0aCA9IHJhbmdlU3RyaW5nVmlldy5sZW5ndGgoKTsKICAgICAg
ICAgdW5zaWduZWQgcmFuZ2VTdWJ0YWdzU3RhcnRJbmRleCA9IDA7Ci0gICAgICAgIHVuc2lnbmVk
IHJhbmdlU3VidGFnc0VuZEluZGV4ID0gcmFuZ2VMZW5ndGg7CiAgICAgICAgIHVuc2lnbmVkIGxh
c3RNYXRjaGVkTGFuZ3VhZ2VTdWJ0YWdJbmRleCA9IDA7CiAKICAgICAgICAgYm9vbCBtYXRjaGVk
UmFuZ2UgPSB0cnVlOwpAQCAtMTkxLDcgKzE5MCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBtYXRj
aGVzTGFuZ1BzZXVkb0NsYXMKICAgICAgICAgICAgICAgICByYW5nZVN1YnRhZ3NTdGFydEluZGV4
ICs9IDE7CiAgICAgICAgICAgICBpZiAocmFuZ2VTdWJ0YWdzU3RhcnRJbmRleCA+IGxhbmd1YWdl
TGVuZ3RoKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJhbmdl
U3VidGFnc0VuZEluZGV4ID0gc3RkOjptaW48dW5zaWduZWQ+KHJhbmdlU3RyaW5nVmlldy5maW5k
KCctJywgcmFuZ2VTdWJ0YWdzU3RhcnRJbmRleCksIHJhbmdlTGVuZ3RoKTsKKyAgICAgICAgICAg
IHVuc2lnbmVkIHJhbmdlU3VidGFnc0VuZEluZGV4ID0gc3RkOjptaW48dW5zaWduZWQ+KHJhbmdl
U3RyaW5nVmlldy5maW5kKCctJywgcmFuZ2VTdWJ0YWdzU3RhcnRJbmRleCksIHJhbmdlTGVuZ3Ro
KTsKICAgICAgICAgICAgIFN0cmluZ1ZpZXcgcmFuZ2VTdWJ0YWcgPSByYW5nZVN0cmluZ1ZpZXcu
c3Vic3RyaW5nKHJhbmdlU3VidGFnc1N0YXJ0SW5kZXgsIHJhbmdlU3VidGFnc0VuZEluZGV4IC0g
cmFuZ2VTdWJ0YWdzU3RhcnRJbmRleCk7CiAgICAgICAgICAgICBpZiAoIWNvbnRhaW5zbGFuZ3Vh
Z2VTdWJ0YWdNYXRjaGluZ1JhbmdlKGxhbmd1YWdlU3RyaW5nVmlldywgcmFuZ2VTdWJ0YWcsIGxh
bmd1YWdlTGVuZ3RoLCBsYXN0TWF0Y2hlZExhbmd1YWdlU3VidGFnSW5kZXgpKSB7CiAgICAgICAg
ICAgICAgICAgbWF0Y2hlZFJhbmdlID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQ291bnRlck5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9Db3VudGVyTm9kZS5jcHAJKHJldmlzaW9uIDE4OTUyMSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9Db3VudGVyTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDgg
QEAgQ291bnRlck5vZGU6On5Db3VudGVyTm9kZSgpCiAgICAgICAgICAgICAgICAgICAgIGNoaWxk
LT5tX3ByZXZpb3VzU2libGluZyA9IG9sZFByZXZpb3VzU2libGluZzsKICAgICAgICAgICAgICAg
ICAgICAgb2xkUHJldmlvdXNTaWJsaW5nLT5tX25leHRTaWJsaW5nID0gY2hpbGQ7CiAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkLT5tX25leHRTaWJsaW5nID0gbmV4dFNpYmxpbmc7Ci0gICAgICAg
ICAgICAgICAgICAgIG5leHRTaWJsaW5nLT5tX3ByZXZpb3VzU2libGluZyA9IGNoaWxkOworICAg
ICAgICAgICAgICAgICAgICBpZiAobmV4dFNpYmxpbmcpCisgICAgICAgICAgICAgICAgICAgICAg
ICBuZXh0U2libGluZy0+bV9wcmV2aW91c1NpYmxpbmcgPSBjaGlsZDsKICAgICAgICAgICAgICAg
ICAgICAgb2xkUHJldmlvdXNTaWJsaW5nID0gY2hpbGQ7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIGNoaWxkID0gbmV4dENoaWxkOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5NTUzKQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDktMDkgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXgg
bnVsbCBkZXJlZmVyZW5jZXMgZnJvbSBzdGF0aWMgYW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTAxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNj
YXBlUGx1Z0luL21haW4uY3BwOgorICAgICAgICAoTlBQX1NldFdpbmRvdyk6CisgICAgICAgIChl
eGVjdXRlU2NyaXB0KToKKwogMjAxNS0wOS0wOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgTGF5b3V0VGVzdFJlbGF5IHhjY29uZmlnIGZpbGUu
CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21h
aW4uY3BwCShyZXZpc2lvbiAxODk1MjEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0
c2NhcGVQbHVnSW4vbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3MCw5ICszNzAsMTAgQEAg
TlBFcnJvciBOUFBfU2V0V2luZG93KE5QUCBpbnN0YW5jZSwgTlBXaQogICAgICAgICAgICAgb2Jq
LT5ldmVudExvZ2dpbmcgPSB0cnVlOwogICAgICAgICAgICAgZXhlY3V0ZVNjcmlwdChvYmosICJl
dmVudFNlbmRlci5rZXlEb3duKCdBJyk7Iik7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKG9iai0+
cGx1Z2luVGVzdCkKKyAgICAgICAgICAgIHJldHVybiBvYmotPnBsdWdpblRlc3QtPk5QUF9TZXRX
aW5kb3cod2luZG93KTsKICAgICB9Ci0gICAgCi0gICAgcmV0dXJuIG9iai0+cGx1Z2luVGVzdC0+
TlBQX1NldFdpbmRvdyh3aW5kb3cpOworICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOwog
fQogCiBzdGF0aWMgdm9pZCBleGVjdXRlU2NyaXB0KGNvbnN0IFBsdWdpbk9iamVjdCogb2JqLCBj
b25zdCBjaGFyKiBzY3JpcHQpCg==
</data>
<flag name="review"
          id="286074"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>