<?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>159327</bug_id>
          
          <creation_ts>2016-06-30 20:43:19 -0700</creation_ts>
          <short_desc>HTMLMediaElement::resume() may cause JavaScript execution</short_desc>
          <delta_ts>2016-07-01 13:33:28 -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>Media</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1206979</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-30 20:43:19 -0700</bug_when>
    <thetext>HTMLMediaElement::resume() may cause JavaScriptExecution, which is not allowed and will cause crashes such as this one:

Thread 0 Crashed ↩:
0   WebCore                       	0x0000000195435fd8 WebCore::ScriptExecutionContext::didCreateActiveDOMObject(WebCore::ActiveDOMObject&amp;) + 52 (ScriptExecutionContext.cpp:332)
1   WebCore                       	0x00000001955238ec WebCore::SuspendableTimer::SuspendableTimer(WebCore::ScriptExecutionContext&amp;) + 36 (SuspendableTimer.cpp:35)
2   WebCore                       	0x0000000194b986b4 WebCore::DOMTimer::DOMTimer(WebCore::ScriptExecutionContext&amp;, std::__1::unique_ptr&lt;WebCore::ScheduledAction, std::__1::default_delete&lt;WebCore::ScheduledAction&gt; &gt;, std::__1::chrono::duration&lt;long long, std::__1::ratio&lt;1l, 1000l&gt; &gt;, bool) + 64 (DOMTimer.cpp:172)
3   WebCore                       	0x0000000194b989b4 WebCore::DOMTimer::install(WebCore::ScriptExecutionContext&amp;, std::__1::unique_ptr&lt;WebCore::ScheduledAction, std::__1::default_delete&lt;WebCore::ScheduledAction&gt; &gt;, std::__1::chrono::duration&lt;long long, std::__1::ratio&lt;1l, 1000l&gt; &gt;, bool) + 84 (DOMTimer.cpp:179)
4   WebCore                       	0x0000000194ba3c94 WebCore::DOMWindow::setTimeout(std::__1::unique_ptr&lt;WebCore::ScheduledAction, std::__1::default_delete&lt;WebCore::ScheduledAction&gt; &gt;, int, int&amp;) + 52 (DOMWindow.cpp:1599)
5   WebCore                       	0x0000000194f46cec WebCore::JSDOMWindow::setTimeout(JSC::ExecState&amp;) + 320 (JSDOMWindowCustom.cpp:576)
6   WebCore                       	0x0000000194f3f46c WebCore::jsDOMWindowInstanceFunctionSetTimeout(JSC::ExecState*) + 188 (JSDOMWindow.cpp:26371)
7   ???                           	0x000000012dd2c030 0 + 5063753776
8   JavaScriptCore                	0x000000019433358c llint_entry + 24748
9   JavaScriptCore                	0x000000019433358c llint_entry + 24748
10  JavaScriptCore                	0x000000019432d318 vmEntryToJavaScript + 264
11  JavaScriptCore                	0x00000001941f7a50 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 168 (JITCode.cpp:80)
12  JavaScriptCore                	0x0000000193c49f70 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 368 (Interpreter.cpp:1015)
13  JavaScriptCore                	0x00000001941614b8 JSC::callSetter(JSC::ExecState*, JSC::JSValue, JSC::JSValue, JSC::JSValue, JSC::ECMAMode) + 320 (GetterSetter.cpp:105)
14  JavaScriptCore                	0x00000001942870d4 JSC::JSObject::putInlineSlow(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&amp;) + 2608 (JSObject.cpp:552)
15  JavaScriptCore                	0x0000000193c44bbc JSC::JSObject::put(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&amp;) + 552 (JSObjectInlines.h:81)
16  WebCore                       	0x0000000194d39714 WebCore::HTMLMediaElement::setControllerJSProperty(char const*, JSC::JSValue) + 468 (HTMLMediaElement.cpp:6524)
17  WebCore                       	0x0000000194b237d0 WebCore::Document::pageScaleFactorChangedAndStable() + 96 (Document.cpp:4878)
18  WebCore                       	0x00000001952829c4 WebCore::Page::setPageScaleFactor(float, WebCore::IntPoint const&amp;, bool) + 212 (Page.cpp:820)
19  WebKit                        	0x00000001992e7064 WebKit::WebPage::scalePage(double, WebCore::IntPoint const&amp;) + 340 (WebPage.cpp:1548)
20  WebKit                        	0x00000001992f554c WebKit::WebPage::restorePageState(WebCore::HistoryItem const&amp;) + 668 (WebPageIOS.mm:298)
21  WebCore                       	0x00000001947ecc1c WebCore::FrameLoader::didFirstLayout() + 76 (FrameLoader.cpp:2399)
22  WebCore                       	0x0000000194ca06b0 WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded() + 64 (FrameView.cpp:4800)
23  WebCore                       	0x00000001947ec494 WebCore::FrameView::performPostLayoutTasks() + 224 (FrameView.cpp:3175)
24  WebCore                       	0x00000001947e8680 WebCore::FrameView::layout(bool) + 3536 (FrameView.cpp:1493)
25  WebCore                       	0x000000019483fe60 WebCore::Document::updateLayout() + 260 (Document.cpp:1985)
26  WebCore                       	0x0000000194b1b0b0 WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks) + 240 (Document.cpp:2017)
27  WebKit                        	0x000000019939fc38 WebKit::inlineVideoFrame(WebCore::HTMLVideoElement&amp;) + 56 (WebVideoFullscreenManager.mm:58)
28  WebKit                        	0x000000019939f8b4 WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&amp;, unsigned int) + 216 (WebVideoFullscreenManager.mm:280)
29  WebCore                       	0x0000000194d37624 WebCore::HTMLMediaElement::enterFullscreen(unsigned int) + 176 (HTMLMediaElement.cpp:5394)
30  WebCore                       	0x0000000194d308fc WebCore::HTMLMediaElement::updatePlayState() + 396 (HTMLMediaElement.cpp:4862)
31  WebCore                       	0x0000000194d36f84 WebCore::HTMLMediaElement::resume() + 92 (HTMLMediaElement.cpp:4932)
32  WebCore                       	0x00000001948f1e6c WebCore::ScriptExecutionContext::resumeActiveDOMObjects(WebCore::ActiveDOMObject::ReasonForSuspension) + 136 (ScriptExecutionContext.cpp:271)
33  WebCore                       	0x0000000194b23244 WebCore::Document::resume(WebCore::ActiveDOMObject::ReasonForSuspension) + 216 (Document.cpp:2467)
34  WebCore                       	0x00000001948f1a98 WebCore::CachedFrameBase::restore() + 112 (CachedFrame.cpp:95)
35  WebCore                       	0x00000001948f1948 WebCore::FrameLoader::open(WebCore::CachedFrameBase&amp;) + 744 (FrameLoader.cpp:2123)
36  WebCore                       	0x00000001949c76f0 WebCore::CachedPage::restore(WebCore::Page&amp;) + 32 (CachedPage.cpp:77)
37  WebCore                       	0x00000001947d8a14 WebCore::FrameLoader::commitProvisionalLoad() + 756 (FrameLoader.cpp:1831)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206980</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-30 20:45:10 -0700</bug_when>
    <thetext>Here is seems to be because of setPausedInternal(false) which calls updatePlayState(). We probably want to so this asynchronously instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207119</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-07-01 08:25:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/27131641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207218</commentid>
    <comment_count>3</comment_count>
      <attachid>282568</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-07-01 12:30:46 -0700</bug_when>
    <thetext>Created attachment 282568
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207220</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-01 12:33:26 -0700</bug_when>
    <thetext>Attachment 282568 did not pass style-queue:


ERROR: Source/WebCore/html/HTMLMediaElement.h:695:  The parameter name &quot;updateState&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/html/HTMLMediaElement.h:775:  The parameter name &quot;updateState&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207223</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-07-01 12:43:08 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Attachment 282568 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/WebCore/html/HTMLMediaElement.h:695:  The parameter name
&gt; &quot;updateState&quot; adds no information, so it should be removed. 
&gt; [readability/parameter_name] [5]
&gt; ERROR: Source/WebCore/html/HTMLMediaElement.h:775:  The parameter name
&gt; &quot;updateState&quot; adds no information, so it should be removed. 
&gt; [readability/parameter_name] [5]
&gt; Total errors found: 2 in 4 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.

https://bugs.webkit.org/show_bug.cgi?id=159362</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207238</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-07-01 13:33:11 -0700</bug_when>
    <thetext>Committed r202749: http://trac.webkit.org/changeset/202749</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282568</attachid>
            <date>2016-07-01 12:30:46 -0700</date>
            <delta_ts>2016-07-01 13:33:28 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>patch_1.txt</filename>
            <type>text/plain</type>
            <size>9189</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjc0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA3LTAxICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1l
bnQ6OnJlc3VtZSgpIG1heSBjYXVzZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzI3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yNzEzMTY0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUgY2FuIGNhdXNl
IGFuIGVsZW1lbnQgdG8gYmVnaW4gcGxheWluZyBhbmQgZW50ZXIgZnVsbHNjcmVlbiwKKyAgICAg
ICAgd2hpY2ggY2FuIHJlc3VsdCBpbiBhIGNhbGwgdG8gdGhlIG1lZGlhIGNvbnRyb2xzIGFuZCBK
YXZhU2NyaXB0IGV4ZWN1dGlvbi4gSmF2YXNjcmlwdCBpcyBub3QKKyAgICAgICAgYWxsb3dlZCBh
bGxvd2VkIHRvIHJ1biB3aGVuIGEgcGFnZSByZXN1bWVzLCBzbyBtYWtlIHRoZSBjYWxsIHRvIHVw
ZGF0ZVBsYXlTdGF0ZSBhc3luY2hyb25vdXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBJIHdh
c24ndCBhYmxlIHRvIGNyZWF0ZSBhIHRlc3QgdGhhdCB0cmlnZ2VycyB0aGUgY3Jhc2guCisKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6c2NoZWR1bGVEZWxheWVkQWN0aW9uKTogU3VwcG9ydCBVcGRhdGVQbGF5
U3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwZW5kaW5nQWN0aW9u
VGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
c2V0UmVhZHlTdGF0ZSk6IFVwZGF0ZU1lZGlhU3RhdGUgLT4gVXBkYXRlU3RhdGUuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwpOiBEb24ndCBjYWxsIHVw
ZGF0ZU1lZGlhQ29udHJvbGxlciwgaXQgaXMgY2FsbGVkCisgICAgICAgICAgYnkgdXBkYXRlUGxh
eVN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQpOiBV
cGRhdGVNZWRpYVN0YXRlIC0+IFVwZGF0ZVN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKTogVXBkYXRlIG1l
ZGlhIHN0YXRlIGFzeW5jaHJvbm91c2x5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6dXBkYXRlUGxheVN0YXRlKTogQWRkIHBhcmFtZXRlciB0byBhbGxvdyB1cGRhdGUgdG8g
aGFwcGVuCisgICAgICAgICAgYXN5bmNocm9ub3VzbHkuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZXRQbGF5aW5nKTogVXBkYXRlTWVkaWFTdGF0ZSAtPiBVcGRhdGVTdGF0
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFBhdXNlZEludGVybmFs
KTogVXBkYXRlIG1lZGlhIHN0YXRlIGFzeW5jaHJvbm91c2x5LgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVs
ZXNzQ2hhbmdlZCk6ICAKKyAgICAgICAgICBVcGRhdGVNZWRpYVN0YXRlIC0+IFVwZGF0ZVN0YXRl
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlRXZlbnRMaXN0ZW5l
cik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW5xdWV1ZVBs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5Q2hhbmdlZEV2ZW50KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKTogVXBkYXRlTWVkaWFT
dGF0ZSAtPiBVcGRhdGVTdGF0ZQorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg6IEFkZCBVcGRhdGVQbGF5U3Rh
dGUuCisKIDIwMTYtMDctMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgUmVzb3VyY2VMb2FkZXJPcHRpb25zIGRlcml2ZSBmcm9tIEZldGNoT3B0aW9u
cwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lv
biAyMDI3MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04OTIsNiArODkyLDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
Y2hlZHVsZURlbGF5ZWRBYwogICAgIGlmIChhY3Rpb25UeXBlICYgTWVkaWFFbmdpbmVVcGRhdGVk
KQogICAgICAgICBzZXRGbGFncyhtX3BlbmRpbmdBY3Rpb25GbGFncywgTWVkaWFFbmdpbmVVcGRh
dGVkKTsKIAorICAgIGlmIChhY3Rpb25UeXBlICYgVXBkYXRlUGxheVN0YXRlKQorICAgICAgICBz
ZXRGbGFncyhtX3BlbmRpbmdBY3Rpb25GbGFncywgVXBkYXRlUGxheVN0YXRlKTsKKwogICAgIG1f
cGVuZGluZ0FjdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIApAQCAtOTc5LDYgKzk4Miw5
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGVuZGluZ0FjdGlvblRpbWUKIAogICAgIGlmIChw
ZW5kaW5nQWN0aW9ucyAmIE1lZGlhRW5naW5lVXBkYXRlZCkKICAgICAgICAgbWVkaWFFbmdpbmVX
YXNVcGRhdGVkKCk7CisKKyAgICBpZiAocGVuZGluZ0FjdGlvbnMgJiBVcGRhdGVQbGF5U3RhdGUp
CisgICAgICAgIHVwZGF0ZVBsYXlTdGF0ZSgpOwogfQogCiBNZWRpYUVycm9yKiBIVE1MTWVkaWFF
bGVtZW50OjplcnJvcigpIGNvbnN0CkBAIC0yMjY5LDcgKzIyNzUsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUoTWVkCiAgICAgICAgIGxvZ01lZGlhTG9hZFJlcXVlc3Qo
ZG9jdW1lbnQoKS5wYWdlKCksIG1fcGxheWVyLT5lbmdpbmVEZXNjcmlwdGlvbigpLCBTdHJpbmco
KSwgdHJ1ZSk7CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotICAgICAg
ICB1cGRhdGVNZWRpYVN0YXRlKFVwZGF0ZU1lZGlhU3RhdGU6OkFzeW5jaHJvbm91c2x5KTsKKyAg
ICAgICAgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVTdGF0ZTo6QXN5bmNocm9ub3VzbHkpOwogI2Vu
ZGlmCiAKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5n
ZWQoKTsKQEAgLTMxMjYsNyArMzEzMiw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cGxheUlu
dGVybmFsKCkKIAogICAgIG1fYXV0b3BsYXlpbmcgPSBmYWxzZTsKICAgICB1cGRhdGVQbGF5U3Rh
dGUoKTsKLSAgICB1cGRhdGVNZWRpYUNvbnRyb2xsZXIoKTsKKwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC0zMzU4LDcgKzMzNjQsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE11dGVk
KGJvb2wgbXV0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
Ci0gICAgICAgIHVwZGF0ZU1lZGlhU3RhdGUoVXBkYXRlTWVkaWFTdGF0ZTo6QXN5bmNocm9ub3Vz
bHkpOworICAgICAgICB1cGRhdGVNZWRpYVN0YXRlKFVwZGF0ZVN0YXRlOjpBc3luY2hyb25vdXNs
eSk7CiAjZW5kaWYKICAgICB9CiAKQEAgLTQ0MTgsNyArNDQyNCw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJUaW1lQ2gKICAgICAgICAgbV9zZW50RW5kRXZlbnQgPSBmYWxz
ZTsKICAgICB9CiAKLSAgICB1cGRhdGVQbGF5U3RhdGUoKTsKKyAgICB1cGRhdGVQbGF5U3RhdGUo
VXBkYXRlU3RhdGU6OkFzeW5jaHJvbm91c2x5KTsKICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5
ZXJDYWxsYmFjaygpOwogfQogCkBAIC00NTk0LDcgKzQ2MDAsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhRW5naW5lV2FzVXBkCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpCi0gICAgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVNZWRpYVN0YXRlOjpB
c3luY2hyb25vdXNseSk7CisgICAgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVTdGF0ZTo6QXN5bmNo
cm9ub3VzbHkpOwogI2VuZGlmCiB9CiAKQEAgLTQ4MjgsOCArNDgzNCwxMyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZVZvbHVtZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUoKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQ
bGF5U3RhdGUoVXBkYXRlU3RhdGUgdXBkYXRlU3RhdGUpCiB7CisgICAgaWYgKHVwZGF0ZVN0YXRl
ID09IFVwZGF0ZVN0YXRlOjpBc3luY2hyb25vdXNseSkgeworICAgICAgICBzY2hlZHVsZURlbGF5
ZWRBY3Rpb24oVXBkYXRlUGxheVN0YXRlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDkyMiwxNCArNDkzMywxNCBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFBsYXlpbmcoYm9vbCBwCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCi0gICAgdXBkYXRlTWVkaWFTdGF0ZShV
cGRhdGVNZWRpYVN0YXRlOjpBc3luY2hyb25vdXNseSk7CisgICAgdXBkYXRlTWVkaWFTdGF0ZShV
cGRhdGVTdGF0ZTo6QXN5bmNocm9ub3VzbHkpOwogI2VuZGlmCiB9CiAKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c2V0UGF1c2VkSW50ZXJuYWwoYm9vbCBiKQogewogICAgIG1fcGF1c2VkSW50ZXJu
YWwgPSBiOwotICAgIHVwZGF0ZVBsYXlTdGF0ZSgpOworICAgIHVwZGF0ZVBsYXlTdGF0ZShVcGRh
dGVTdGF0ZTo6QXN5bmNocm9ub3VzbHkpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0
b3BQZXJpb2RpY1RpbWVycygpCkBAIC01MjIxLDcgKzUyMzIsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyQ3VycmVuCiAgICAgbV9tZWRpYVNlc3Npb24tPmlzUGxheWluZ1Rv
V2lyZWxlc3NQbGF5YmFja1RhcmdldENoYW5nZWQobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0
KTsKICAgICBpZiAobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KQogICAgICAgICBtX21lZGlh
U2Vzc2lvbi0+c2V0Q2FuUHJvZHVjZUF1ZGlvKHRydWUpOwotICAgIHVwZGF0ZU1lZGlhU3RhdGUo
VXBkYXRlTWVkaWFTdGF0ZTo6QXN5bmNocm9ub3VzbHkpOworICAgIHVwZGF0ZU1lZGlhU3RhdGUo
VXBkYXRlU3RhdGU6OkFzeW5jaHJvbm91c2x5KTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50
OjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKQEAgLTUyNjYsNyArNTI3Nyw3IEBAIGJvb2wg
SFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlRXZlbnRMaXN0ZW4KICAgICBpZiAoZGlkUmVtb3ZlTGFz
dEF2YWlsYWJpbGl0eUNoYW5nZWRMaXN0ZW5lcikgewogICAgICAgICBtX2hhc1BsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzID0gZmFsc2U7CiAgICAgICAgIG1fbWVkaWFTZXNzaW9u
LT5zZXRIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycygqdGhpcywgZmFsc2Up
OwotICAgICAgICB1cGRhdGVNZWRpYVN0YXRlKFVwZGF0ZU1lZGlhU3RhdGU6OkFzeW5jaHJvbm91
c2x5KTsKKyAgICAgICAgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVTdGF0ZTo6QXN5bmNocm9ub3Vz
bHkpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtNTI3OSw3ICs1MjkwLDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjplbnF1ZXVlUGxheWJhY2tUYQogICAgIGF1dG8gZXZlbnQgPSBX
ZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LndlYmtpdHBsYXliYWNrdGFyZ2V0YXZhaWxhYmlsaXR5Y2hhbmdlZEV2ZW50LCBoYXNUYXJnZXRz
KTsKICAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwogICAgIG1fYXN5bmNFdmVudFF1ZXVlLmVu
cXVldWVFdmVudChXVEZNb3ZlKGV2ZW50KSk7Ci0gICAgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVN
ZWRpYVN0YXRlOjpBc3luY2hyb25vdXNseSk7CisgICAgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVT
dGF0ZTo6QXN5bmNocm9ub3VzbHkpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFdp
cmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYgZGV2aWNlKQpA
QCAtNjg0NCw5ICs2ODU1LDkgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlk
ZUJhYwogfQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKLXZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6dXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVNZWRpYVN0YXRlIHVwZGF0ZVN0
YXRlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKFVwZGF0ZVN0YXRl
IHVwZGF0ZVN0YXRlKQogewotICAgIGlmICh1cGRhdGVTdGF0ZSA9PSBVcGRhdGVNZWRpYVN0YXRl
OjpBc3luY2hyb25vdXNseSkgeworICAgIGlmICh1cGRhdGVTdGF0ZSA9PSBVcGRhdGVTdGF0ZTo6
QXN5bmNocm9ub3VzbHkpIHsKICAgICAgICAgc2NoZWR1bGVEZWxheWVkQWN0aW9uKENoZWNrTWVk
aWFTdGF0ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gMjAyNzM2KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5MCw4ICs2OTAsMTAg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2so
KSB7ICsrbV9wcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjazsgfQogICAgIHZvaWQgZW5kUHJv
Y2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKSB7IEFTU0VSVChtX3Byb2Nlc3NpbmdNZWRpYVBs
YXllckNhbGxiYWNrKTsgLS1tX3Byb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrOyB9CiAKKyAg
ICBlbnVtIGNsYXNzIFVwZGF0ZVN0YXRlIHsgQXN5bmNocm9ub3VzbHksIFN5bmNocm9ub3VzbHkg
fTsKKworICAgIHZvaWQgdXBkYXRlUGxheVN0YXRlKFVwZGF0ZVN0YXRlIHVwZGF0ZVN0YXRlID0g
VXBkYXRlU3RhdGU6OlN5bmNocm9ub3VzbHkpOwogICAgIHZvaWQgdXBkYXRlVm9sdW1lKCk7Ci0g
ICAgdm9pZCB1cGRhdGVQbGF5U3RhdGUoKTsKICAgICB2b2lkIHNldFBsYXlpbmcoYm9vbCk7CiAg
ICAgYm9vbCBwb3RlbnRpYWxseVBsYXlpbmcoKSBjb25zdDsKICAgICBib29sIGVuZGVkUGxheWJh
Y2soKSBjb25zdDsKQEAgLTc3MCw4ICs3NzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlcGFy
ZUZvckRvY3VtZW50U3VzcGVuc2lvbigpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1lRnJvbURvY3Vt
ZW50U3VzcGVuc2lvbigpIGZpbmFsOwogCi0gICAgZW51bSBjbGFzcyBVcGRhdGVNZWRpYVN0YXRl
IHsgQXN5bmNocm9ub3VzbHksIFN5bmNocm9ub3VzbHkgfTsKLSAgICB2b2lkIHVwZGF0ZU1lZGlh
U3RhdGUoVXBkYXRlTWVkaWFTdGF0ZSB1cGRhdGVTdGF0ZSA9IFVwZGF0ZU1lZGlhU3RhdGU6OlN5
bmNocm9ub3VzbHkpOworICAgIHZvaWQgdXBkYXRlTWVkaWFTdGF0ZShVcGRhdGVTdGF0ZSB1cGRh
dGVTdGF0ZSA9IFVwZGF0ZVN0YXRlOjpTeW5jaHJvbm91c2x5KTsKICAgICBib29sIGhhc1BsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyczsgfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50RW51bXMuaAkocmV2aXNpb24gMjAyNzM2
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50RW51bXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsOCArNDIsOSBAQCBwdWJsaWM6CiAgICAgICAgIENoZWNrUGxheWJhY2tU
YXJnZXRDb21wYXRhYmxpdHkgPSAxIDw8IDQsCiAgICAgICAgIENoZWNrTWVkaWFTdGF0ZSA9IDEg
PDwgNSwKICAgICAgICAgTWVkaWFFbmdpbmVVcGRhdGVkID0gMSA8PCA2LAorICAgICAgICBVcGRh
dGVQbGF5U3RhdGUgPSAxIDw8IDcsCiAKLSAgICAgICAgRXZlcnlEZWxheWVkQWN0aW9uID0gTG9h
ZE1lZGlhUmVzb3VyY2UgfCBDb25maWd1cmVUZXh0VHJhY2tzIHwgVGV4dFRyYWNrQ2hhbmdlc05v
dGlmaWNhdGlvbiB8IENvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkgfCBDaGVja1BsYXliYWNrVGFy
Z2V0Q29tcGF0YWJsaXR5IHwgQ2hlY2tNZWRpYVN0YXRlLAorICAgICAgICBFdmVyeURlbGF5ZWRB
Y3Rpb24gPSBMb2FkTWVkaWFSZXNvdXJjZSB8IENvbmZpZ3VyZVRleHRUcmFja3MgfCBUZXh0VHJh
Y2tDaGFuZ2VzTm90aWZpY2F0aW9uIHwgQ29uZmlndXJlVGV4dFRyYWNrRGlzcGxheSB8IENoZWNr
UGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHkgfCBDaGVja01lZGlhU3RhdGUgfCBVcGRhdGVQbGF5
U3RhdGUsCiAgICAgfTsKIAogICAgIGVudW0gUmVhZHlTdGF0ZSB7IEhBVkVfTk9USElORywgSEFW
RV9NRVRBREFUQSwgSEFWRV9DVVJSRU5UX0RBVEEsIEhBVkVfRlVUVVJFX0RBVEEsIEhBVkVfRU5P
VUdIX0RBVEEgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>