<?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>220355</bug_id>
          
          <creation_ts>2021-01-05 23:25:23 -0800</creation_ts>
          <short_desc>Missing exception check with new MediaStream(0)</short_desc>
          <delta_ts>2021-02-04 20:55:02 -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>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220790</see_also>
          <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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gpoo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>product-security</cc>
    
    <cc>rbuis</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717598</commentid>
    <comment_count>0</comment_count>
      <attachid>417073</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-05 23:25:23 -0800</bug_when>
    <thetext>Created attachment 417073
Test

__XPC_JSC_validateExceptionChecks=1 ./Tools/Scripts/run-test-runner --debug repro_406.html

Unchecked exception detected at:
    1   0x63d74bd68 JSC::VM::verifyExceptionCheckNeedIsSatisfied(unsigned int, JSC::ExceptionEventLocation&amp;)
    2   0x63d6ef9d7 JSC::ThrowScope::throwException(JSC::JSGlobalObject*, JSC::JSValue)
    3   0x63d2fa231 JSC::throwException(JSC::JSGlobalObject*, JSC::ThrowScope&amp;, JSC::JSValue)
    4   0x63cec5f8b JSC::throwTypeError(JSC::JSGlobalObject*, JSC::ThrowScope&amp;)
    5   0x5ff0ae8f3 JSC::throwVMTypeError(JSC::JSGlobalObject*, JSC::ThrowScope&amp;)
    6   0x600f0c77e WebCore::JSDOMConstructor&lt;WebCore::JSMediaStream&gt;::construct(JSC::JSGlobalObject*, JSC::CallFrame*)
    7   0x63c6b13d5 JSC::NativeFunction::operator()(JSC::JSGlobalObject*, JSC::CallFrame*)
    8   0x63c6b0ed0 JSC::TaggedNativeFunction::operator()(JSC::JSGlobalObject*, JSC::CallFrame*)
    9   0x63c7ff8b2 JSC::LLInt::handleHostCall(JSC::CallFrame*, JSC::JSValue, JSC::CodeSpecializationKind)
    10  0x63c7fce1d JSC::LLInt::setUpCall(JSC::CallFrame*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*)
    11  0x63c7cd6af JSC::SlowPathReturnType JSC::LLInt::genericCall&lt;JSC::OpConstruct&gt;(JSC::CodeBlock*, JSC::CallFrame*, JSC::OpConstruct&amp;&amp;, JSC::CodeSpecializationKind, unsigned int)
    12  0x63c7cd012 llint_slow_path_construct
    13  0x639bf1c2a llint_entry
    14  0x639bcf5e2 vmEntryToJavaScript
    15  0x63c3d04a7 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
    16  0x63c3ce040 JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;, JSC::JSGlobalObject*, JSC::JSObject*)
    17  0x63ce5a23a JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
    18  0x63ce5a721 JSC::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
    19  0x60515f639 WebCore::JSExecState::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
    20  0x60515e977 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)
    21  0x60515e393 WebCore::ScriptController::evaluateInWorldIgnoringException(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)
    22  0x60515fb0e WebCore::ScriptController::evaluateIgnoringException(WebCore::ScriptSourceCode const&amp;)
    23  0x606208567 WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&amp;)
    24  0x6062035aa WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport)
    25  0x606f40eaf WebCore::HTMLScriptRunner::runScript(WebCore::ScriptElement&amp;, WTF::TextPosition const&amp;)
    26  0x606f40871 WebCore::HTMLScriptRunner::execute(WTF::Ref&lt;WebCore::ScriptElement, WTF::RawPtrTraits&lt;WebCore::ScriptElement&gt; &gt;&amp;&amp;, WTF::TextPosition const&amp;)
    27  0x606efac94 WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder()
    28  0x606efb504 WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&amp;)
    29  0x606ef9dbd WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)
    30  0x606ef92f6 WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode)
    31  0x606efd226 WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl, WTF::RawPtrTraits&lt;WTF::StringImpl&gt;, WTF::DefaultRefDerefTraits&lt;WTF::StringImpl&gt; &gt;&amp;&amp;)
    32  0x605d90baa WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter&amp;)
    33  0x6079ab4a5 WebCore::DocumentWriter::end()
    34  0x60790c6cd WebCore::DocumentLoader::finishedLoading()
    35  0x60790bae0 WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource&amp;, WebCore::NetworkLoadMetrics const&amp;)
    36  0x607c653d7 WebCore::CachedResource::checkNotify(WebCore::NetworkLoadMetrics const&amp;)
    37  0x607c5ba58 WebCore::CachedResource::finishLoading(WebCore::SharedBuffer*, WebCore::NetworkLoadMetrics const&amp;)
    38  0x607c5e704 WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*, WebCore::NetworkLoadMetrics const&amp;)
    39  0x607b5906f WebCore::SubresourceLoader::didFinishLoading(WebCore::NetworkLoadMetrics const&amp;)
    40  0x5ebdace68 WebKit::WebResourceLoader::didFinishResourceLoad(WebCore::NetworkLoadMetrics const&amp;)
    41  0x5ecae0a87 void IPC::callMemberFunctionImpl&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;), std::__1::tuple&lt;WebCore::NetworkLoadMetrics&gt;, 0ul&gt;(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;), std::__1::tuple&lt;WebCore::NetworkLoadMetrics&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt;)
    42  0x5ecae076e void IPC::callMemberFunction&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;), std::__1::tuple&lt;WebCore::NetworkLoadMetrics&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt; &gt;(std::__1::tuple&lt;WebCore::NetworkLoadMetrics&gt;&amp;&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;))
    43  0x5ecadae62 void IPC::handleMessage&lt;Messages::WebResourceLoader::DidFinishResourceLoad, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;)&gt;(IPC::Decoder&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;))
    44  0x5ecad929b WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
    45  0x5ebd8bf3f WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
    46  0x5e8120acd IPC::Connection::dispatchMessage(IPC::Decoder&amp;)
    47  0x5e812353b IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)
    48  0x5e8125235 IPC::Connection::dispatchOneIncomingMessage()
    49  0x5e816c798 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_8::operator()()
    50  0x5e816c67e WTF::Detail::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_8, void&gt;::call()
    51  0x6389f1fe5 WTF::Function&lt;void ()&gt;::operator()() const
    52  0x638b387de WTF::RunLoop::performWork()
    53  0x638b3ffd6 WTF::RunLoop::performWork(void*)
    54  0x7fff20462a0c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
    55  0x7fff20462974 __CFRunLoopDoSource0
    56  0x7fff204626ef __CFRunLoopDoSources0
    57  0x7fff20461121 __CFRunLoopRun
    58  0x7fff204606ce CFRunLoopRunSpecific
    59  0x7fff211edfa1 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
    60  0x7fff2127c384 -[NSRunLoop(NSRunLoop) run]
    61  0x7fff200b63dd _xpc_objc_main
    62  0x7fff200b5e65 _xpc_copy_xpcservice_dictionary
    63  0x5e9bfe178 WebKit::XPCServiceMain(int, char const**)
    64  0x5ecc1173b WKXPCServiceMain
    65  0x100298e12 main
    66  0x7fff20385621 start
    67  0x1

ASSERTION FAILED: !m_needExceptionCheck
./runtime/VM.cpp(1416) : void JSC::VM::verifyExceptionCheckNeedIsSatisfied(unsigned int, JSC::ExceptionEventLocation &amp;)
1   0x63898df49 WTFCrash
2   0x63a293180 JSC::B3::PatchpointSpecial::admitsExtendedOffsetAddr(JSC::B3::Air::Inst&amp;, unsigned int)
3   0x63d74bf49 JSC::VM::verifyExceptionCheckNeedIsSatisfied(unsigned int, JSC::ExceptionEventLocation&amp;)
4   0x63d6ef9d7 JSC::ThrowScope::throwException(JSC::JSGlobalObject*, JSC::JSValue)
5   0x63d2fa231 JSC::throwException(JSC::JSGlobalObject*, JSC::ThrowScope&amp;, JSC::JSValue)
6   0x63cec5f8b JSC::throwTypeError(JSC::JSGlobalObject*, JSC::ThrowScope&amp;)
7   0x5ff0ae8f3 JSC::throwVMTypeError(JSC::JSGlobalObject*, JSC::ThrowScope&amp;)
8   0x600f0c77e WebCore::JSDOMConstructor&lt;WebCore::JSMediaStream&gt;::construct(JSC::JSGlobalObject*, JSC::CallFrame*)
9   0x63c6b13d5 JSC::NativeFunction::operator()(JSC::JSGlobalObject*, JSC::CallFrame*)
10  0x63c6b0ed0 JSC::TaggedNativeFunction::operator()(JSC::JSGlobalObject*, JSC::CallFrame*)
11  0x63c7ff8b2 JSC::LLInt::handleHostCall(JSC::CallFrame*, JSC::JSValue, JSC::CodeSpecializationKind)
12  0x63c7fce1d JSC::LLInt::setUpCall(JSC::CallFrame*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*)
13  0x63c7cd6af JSC::SlowPathReturnType JSC::LLInt::genericCall&lt;JSC::OpConstruct&gt;(JSC::CodeBlock*, JSC::CallFrame*, JSC::OpConstruct&amp;&amp;, JSC::CodeSpecializationKind, unsigned int)
14  0x63c7cd012 llint_slow_path_construct
15  0x639bf1c2a llint_entry
16  0x639bcf5e2 vmEntryToJavaScript
17  0x63c3d04a7 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
18  0x63c3ce040 JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;, JSC::JSGlobalObject*, JSC::JSObject*)
19  0x63ce5a23a JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
20  0x63ce5a721 JSC::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
21  0x60515f639 WebCore::JSExecState::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
22  0x60515e977 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)
23  0x60515e393 WebCore::ScriptController::evaluateInWorldIgnoringException(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)
24  0x60515fb0e WebCore::ScriptController::evaluateIgnoringException(WebCore::ScriptSourceCode const&amp;)
25  0x606208567 WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&amp;)
26  0x6062035aa WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport)
27  0x606f40eaf WebCore::HTMLScriptRunner::runScript(WebCore::ScriptElement&amp;, WTF::TextPosition const&amp;)
28  0x606f40871 WebCore::HTMLScriptRunner::execute(WTF::Ref&lt;WebCore::ScriptElement, WTF::RawPtrTraits&lt;WebCore::ScriptElement&gt; &gt;&amp;&amp;, WTF::TextPosition const&amp;)
29  0x606efac94 WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder()
30  0x606efb504 WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&amp;)
31  0x606ef9dbd WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)
#CRASHED - com.apple.WebKit.WebContent.Development (pid 78792)

&lt;rdar://problem/69490078&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720352</commentid>
    <comment_count>1</comment_count>
      <attachid>417835</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-18 08:27:03 -0800</bug_when>
    <thetext>Created attachment 417835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720386</commentid>
    <comment_count>2</comment_count>
      <attachid>417835</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-01-18 12:22:51 -0800</bug_when>
    <thetext>Comment on attachment 417835
Patch

Can you add the test in the patch as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720411</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-18 14:00:25 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #2)
&gt; Comment on attachment 417835 [details]
&gt; Patch
&gt; 
&gt; Can you add the test in the patch as well?

Does this missing exception check have a security implication? If so, we can&apos;t check in the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720449</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-18 18:28:46 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; (In reply to Mark Lam from comment #2)
&gt; &gt; Comment on attachment 417835 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Can you add the test in the patch as well?
&gt; 
&gt; Does this missing exception check have a security implication? If so, we
&gt; can&apos;t check in the test.

Let&apos;s attach the test to this bug. We will just land it into Internal repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720479</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-19 00:28:35 -0800</bug_when>
    <thetext>I thought about the test, but I was not sure how to do it. It requires ENABLE_EXCEPTION_SCOPE_VERIFICATION to be enabled, which is the default for debug builds, but it also needs JSC_validateExceptionChecks=1. I guess we can always set the env var from WTR, or at least when --debug is passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721109</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-21 02:42:05 -0800</bug_when>
    <thetext>This is already covered by fast/mediastream/MediaStreamConstructor.html but we need to run it with JSC_validateExceptionChecks=1 to make it crash in debug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721110</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-21 02:44:12 -0800</bug_when>
    <thetext>I suspect there might be more existing tests crashing with JSC_validateExceptionChecks=1, so I&apos;ll file a new bug report to set the env var for debug config and see what EWS says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721225</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-01-21 10:23:31 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #6)
&gt; This is already covered by fast/mediastream/MediaStreamConstructor.html but
&gt; we need to run it with JSC_validateExceptionChecks=1 to make it crash in
&gt; debug.

To enable the option in just 1 test, you can use `[ jscOptions=--validateExceptionChecks=true ]`.  See LayoutTests/js/dom/promise-should-have-exception-check-on-operation.html for an example.

The reason we haven&apos;t turned it on for all debug build runs is because there are a lot more failures that need to be fixed first before we can do that (to avoid red test bots).  You&apos;re welcome to try to fix them all though and turn on the flag for all debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721508</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-22 00:49:47 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #8)
&gt; (In reply to Carlos Garcia Campos from comment #6)
&gt; &gt; This is already covered by fast/mediastream/MediaStreamConstructor.html but
&gt; &gt; we need to run it with JSC_validateExceptionChecks=1 to make it crash in
&gt; &gt; debug.
&gt; 
&gt; To enable the option in just 1 test, you can use `[
&gt; jscOptions=--validateExceptionChecks=true ]`.  See
&gt; LayoutTests/js/dom/promise-should-have-exception-check-on-operation.html for
&gt; an example.

Great, that should work for this particular case then. I guess that should be done in a separate commit in any case, right?

&gt; The reason we haven&apos;t turned it on for all debug build runs is because there
&gt; are a lot more failures that need to be fixed first before we can do that
&gt; (to avoid red test bots).  You&apos;re welcome to try to fix them all though and
&gt; turn on the flag for all debug builds.

Indeed, see bug #220790.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722858</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-27 00:57:32 -0800</bug_when>
    <thetext>So, can we land this fix then? There&apos;s no new test for this, we just need to enable JSC_validateExceptionChecks for fast/mediastream/MediaStreamConstructor.html in a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723268</commentid>
    <comment_count>11</comment_count>
      <attachid>417835</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-01-27 20:17:43 -0800</bug_when>
    <thetext>Comment on attachment 417835
Patch

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

Please rebase the bindings test after applying the fix below.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3669
&gt;          push(@implContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
&gt;          push(@implContent, &quot;        if ($condition)\n    &quot;) if $condition;
&gt;          push(@implContent, &quot;        RELEASE_AND_RETURN(throwScope, (&quot; . $overloadFunctionPrefix . $overload-&gt;{overloadIndex} . $overloadFunctionSuffix . &quot;(${parametersToForward})));\n&quot;);
&gt; +        push(@implContent, &quot;        RETURN_IF_EXCEPTION(throwScope, { });\n&quot;) if $canThrow;

This fix is not correct.  The exception is potentially thrown by the evaluation of $condition.  And then the if clause can call another function that may also throw.  Hence, the exception check needs to appear before the second function call.  Also, I recommend renaming $canThrow to $conditionCanThrow to make it clear that this bool only covers a throw from the condition.

The correct fix is to do this instead:

        if ($condition &amp;&amp; $conditionCanThrow) {
            push(@implContent, &quot;        {\n &quot;);
            push(@implContent, &quot;            bool success = $condition;\n &quot;);
            push(@implContent, &quot;            RETURN_IF_EXCEPTION(throwScope, { });\n&quot;);
            push(@implContent, &quot;            if (success)\n &quot;);
            push(@implContent, &quot;                RELEASE_AND_RETURN(throwScope, (&quot; . $overloadFunctionPrefix . $overload-&gt;{overloadIndex} . $overloadFunctionSuffix . &quot;
            push(@implContent, &quot;        }\n &quot;);
        } elsif ($condition) {
            push(@implContent, &quot;        if ($condition)\n &quot;)
            push(@implContent, &quot;            RELEASE_AND_RETURN(throwScope, (&quot; . $overloadFunctionPrefix . $overload-&gt;{overloadIndex} . $overloadFunctionSuffix . &quot;
        } else {
            push(@implContent, &quot;        RELEASE_AND_RETURN(throwScope, (&quot; . $overloadFunctionPrefix . $overload-&gt;{overloadIndex} . $overloadFunctionSuffix . &quot;
        }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723269</commentid>
    <comment_count>12</comment_count>
      <attachid>417835</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-01-27 20:20:16 -0800</bug_when>
    <thetext>Comment on attachment 417835
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3669
&gt;&gt; +        push(@implContent, &quot;        RETURN_IF_EXCEPTION(throwScope, { });\n&quot;) if $canThrow;
&gt; 
&gt; This fix is not correct.  The exception is potentially thrown by the evaluation of $condition.  And then the if clause can call another function that may also throw.  Hence, the exception check needs to appear before the second function call.  Also, I recommend renaming $canThrow to $conditionCanThrow to make it clear that this bool only covers a throw from the condition.
&gt; 
&gt; The correct fix is to do this instead:
&gt; 
&gt;         if ($condition &amp;&amp; $conditionCanThrow) {
&gt;             push(@implContent, &quot;        {\n &quot;);
&gt;             push(@implContent, &quot;            bool success = $condition;\n &quot;);
&gt;             push(@implContent, &quot;            RETURN_IF_EXCEPTION(throwScope, { });\n&quot;);
&gt;             push(@implContent, &quot;            if (success)\n &quot;);
&gt;             push(@implContent, &quot;                RELEASE_AND_RETURN(throwScope, (&quot; . $overloadFunctionPrefix . $overload-&gt;{overloadIndex} . $overloadFunctionSuffix . &quot;
&gt;             push(@implContent, &quot;        }\n &quot;);
&gt;         } elsif ($condition) {
&gt;             push(@implContent, &quot;        if ($condition)\n &quot;)
&gt;             push(@implContent, &quot;            RELEASE_AND_RETURN(throwScope, (&quot; . $overloadFunctionPrefix . $overload-&gt;{overloadIndex} . $overloadFunctionSuffix . &quot;
&gt;         } else {
&gt;             push(@implContent, &quot;        RELEASE_AND_RETURN(throwScope, (&quot; . $overloadFunctionPrefix . $overload-&gt;{overloadIndex} . $overloadFunctionSuffix . &quot;
&gt;         }

Oops, I&apos;m missing the `(${parametersToForward})));\n&quot;);` at the end of the RELEASE_AND_RETURN in each case of the above 3 cases.  Please add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724151</commentid>
    <comment_count>13</comment_count>
      <attachid>418849</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-02-01 02:17:22 -0800</bug_when>
    <thetext>Created attachment 418849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724334</commentid>
    <comment_count>14</comment_count>
      <attachid>418849</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-02-01 11:32:21 -0800</bug_when>
    <thetext>Comment on attachment 418849
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724569</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-02 01:33:41 -0800</bug_when>
    <thetext>Committed r272199: &lt;https://trac.webkit.org/changeset/272199&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418849.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725931</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-04 20:52:48 -0800</bug_when>
    <thetext>Can we add a test since we don&apos;t believe this is a security issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725932</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-04 20:55:02 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #16)
&gt; Can we add a test since we don&apos;t believe this is a security issue?

Oh never mind. Forgot that we already had an existing test for this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>417073</attachid>
            <date>2021-01-05 23:25:23 -0800</date>
            <delta_ts>2021-01-05 23:25:23 -0800</delta_ts>
            <desc>Test</desc>
            <filename>repro_406.html</filename>
            <type>text/html</type>
            <size>41</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KICBuZXcgTWVkaWFTdHJlYW0oMCk7Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417835</attachid>
            <date>2021-01-18 08:27:03 -0800</date>
            <delta_ts>2021-02-01 02:17:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-overload-exceptions.diff</filename>
            <type>text/plain</type>
            <size>5289</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YjUwYmE2MDVhNjQuLjZkZmQyMTY1Y2YxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDIxLTAxLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBNaXNzaW5nIGV4Y2VwdGlvbiBjaGVjayB3aXRoIG5ldyBN
ZWRpYVN0cmVhbSgwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIwMzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBpcyBiZWNhdXNlIHRoZSBNZWRpYVN0cmVhbSBjb25zdHJ1Y3RvciBjYWxscyBo
YXNJdGVyYXRvck1ldGhvZCgpIHRoYXQgY2FuIHRocm93IGEgZXhjZXB0aW9uLCBidXQgaXQncyBu
b3QgY2hlY2tlZC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoR2VuZXJhdGVPdmVybG9hZERpc3BhdGNoZXIpOiBIYW5kbGUgb3Zlcmxv
YWQgY2FsbHMgd2hlbiB0aGUgY29uZGl0aW9uIGNhbiB0aHJvdyBhIGV4Y2VwdGlvbi4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RPdmVybG9h
ZERpc3BhdGNoZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VET01Db25zdHJ1Y3Rvcjo6
Y29uc3RydWN0KToKKwogMjAyMS0wMS0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgMTQgb24gMnggZGlzcGxheSByZW5kZXJzIE5ZUyBE
TVYgcGFnZSBhcyBibHVycnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZmIwZDQ2NzEzODVlLi44ZDA5NWJhYmIyMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC0zNjYwLDEyICszNjYwLDEzIEBAIHN1YiBHZW5lcmF0ZU92ZXJsb2FkRGlzcGF0Y2hl
cgogICAgIG15ICVhbGxTZXRzID0gQ29tcHV0ZUVmZmVjdGl2ZU92ZXJsb2FkU2V0KCRvcGVyYXRp
b24tPntvdmVybG9hZHN9KTsKIAogICAgIG15ICRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNz
YXJ5ID0gc3ViIHsKLSAgICAgICAgbXkgKCRvdmVybG9hZCwgJGNvbmRpdGlvbiwgJGluY2x1ZGUp
ID0gQF87CisgICAgICAgIG15ICgkb3ZlcmxvYWQsICRjb25kaXRpb24sICRjYW5UaHJvdywgJGlu
Y2x1ZGUpID0gQF87CiAgICAgICAgIHJldHVybiB1bmxlc3MgJG92ZXJsb2FkOwogICAgICAgICBt
eSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25h
bFN0cmluZygkb3ZlcmxvYWQpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2Nv
bmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgaWYgKCRjb25kaXRpb24pXG4gICAgIikgaWYgJGNvbmRp
dGlvbjsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAoIiAuICRvdmVybG9hZEZ1bmN0aW9uUHJlZml4IC4gJG92ZXJsb2Fk
LT57b3ZlcmxvYWRJbmRleH0gLiAkb3ZlcmxvYWRGdW5jdGlvblN1ZmZpeCAuICIoJHtwYXJhbWV0
ZXJzVG9Gb3J3YXJkfSkpKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pO1xuIikgaWYgJGNhblRocm93
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFs
U3RyaW5nOwogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygkaW5jbHVkZSwgJG92ZXJsb2FkLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0pIGlmICRpbmNsdWRlOwogICAgIH07CkBA
IC0zNzc5LDcgKzM3ODAsNyBAQCBzdWIgR2VuZXJhdGVPdmVybG9hZERpc3BhdGNoZXIKIAogICAg
ICAgICAgICAgIyBGSVhNRTogQXZvaWQgaW52b2tpbmcgR2V0TWV0aG9kKG9iamVjdCwgU3ltYm9s
Lml0ZXJhdG9yKSBhZ2FpbiBpbiBjb252ZXJ0PElETFNlcXVlbmNlPFQ+PiguLi4pLgogICAgICAg
ICAgICAgJG92ZXJsb2FkID0gR2V0T3ZlcmxvYWRUaGF0TWF0Y2hlcygkUywgJGQsIFwmJGlzU2Vx
dWVuY2VPckZyb3plbkFycmF5UGFyYW1ldGVyKTsKLSAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVy
bG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJoYXNJdGVyYXRvck1ldGhvZChsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBkaXN0aW5ndWlzaGluZ0FyZykiLCAiPEphdmFTY3JpcHRDb3JlL0l0ZXJh
dG9yT3BlcmF0aW9ucy5oPiIpOworICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElm
TmVjZXNzYXJ5KCRvdmVybG9hZCwgImhhc0l0ZXJhdG9yTWV0aG9kKGxleGljYWxHbG9iYWxPYmpl
Y3QsIGRpc3Rpbmd1aXNoaW5nQXJnKSIsIDEsICI8SmF2YVNjcmlwdENvcmUvSXRlcmF0b3JPcGVy
YXRpb25zLmg+Iik7CiAKICAgICAgICAgICAgICRvdmVybG9hZCA9IEdldE92ZXJsb2FkVGhhdE1h
dGNoZXMoJFMsICRkLCBcJiRpc0RpY3Rpb25hcnlPclJlY29yZE9yT2JqZWN0T3JDYWxsYmFja0lu
dGVyZmFjZVBhcmFtZXRlcik7CiAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZO
ZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAppbmRleCA3NWViNDNiZjIxMTQuLmUzNWJjMWM4ODA2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTc3
OTcsNiArNzc5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kT3ZlCiAgICAgICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292
ZXJsb2FkZWRNZXRob2QxM0JvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0
ZWRUaGlzKSkpOwogICAgICAgICBpZiAoaGFzSXRlcmF0b3JNZXRob2QobGV4aWNhbEdsb2JhbE9i
amVjdCwgZGlzdGluZ3Vpc2hpbmdBcmcpKQogICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9k
N0JvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpKQogICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0
aG9kNUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwog
ICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApp
bmRleCA2MjVkNmVjMDhiMTAuLjUzMjZlMWNjMmRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApAQCAtMTM4
LDYgKzEzOCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRS
SUJVVEVTIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXCiAgICAgICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuY2UxKGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpKTsKICAg
ICAgICAgaWYgKGhhc0l0ZXJhdG9yTWV0aG9kKGxleGljYWxHbG9iYWxPYmplY3QsIGRpc3Rpbmd1
aXNoaW5nQXJnKSkKICAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTEobGV4aWNh
bEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIHsgfSk7CiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAoY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTIobGV4
aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSkpOwogICAgIH0KICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsK
</data>
<flag name="review"
          id="435625"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418849</attachid>
            <date>2021-02-01 02:17:22 -0800</date>
            <delta_ts>2021-02-02 01:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-media-stream-exception-check.diff</filename>
            <type>text/plain</type>
            <size>7195</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzOTk2MjNhMDU5YzUuLmNhZTc1NjJlNDNhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDIxLTAyLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBNaXNzaW5nIGV4Y2VwdGlvbiBjaGVjayB3aXRoIG5ldyBN
ZWRpYVN0cmVhbSgwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIwMzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBpcyBiZWNhdXNlIHRoZSBNZWRpYVN0cmVhbSBjb25zdHJ1Y3RvciBjYWxscyBo
YXNJdGVyYXRvck1ldGhvZCgpIHRoYXQgY2FuIHRocm93IGEgZXhjZXB0aW9uLCBidXQgaXQncyBu
b3QgY2hlY2tlZC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoR2VuZXJhdGVPdmVybG9hZERpc3BhdGNoZXIpOiBIYW5kbGUgb3Zlcmxv
YWQgY2FsbHMgd2hlbiB0aGUgY29uZGl0aW9uIGNhbiB0aHJvdyBhIGV4Y2VwdGlvbi4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RPdmVybG9h
ZERpc3BhdGNoZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VET01Db25zdHJ1Y3Rvcjo6
Y29uc3RydWN0KToKKwogMjAyMS0wMS0zMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2
YXJpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV0gQWRkIGJhc2ljIGNi
Y3Mgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQppbmRleCBmYjBkNDY3MTM4NWUuLmJlOWJhNGNkZDJhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTM2NjAsMTIgKzM2NjAsMjMgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWREaXNwYXRjaGVyCiAgICAg
bXkgJWFsbFNldHMgPSBDb21wdXRlRWZmZWN0aXZlT3ZlcmxvYWRTZXQoJG9wZXJhdGlvbi0+e292
ZXJsb2Fkc30pOwogCiAgICAgbXkgJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkgPSBz
dWIgewotICAgICAgICBteSAoJG92ZXJsb2FkLCAkY29uZGl0aW9uLCAkaW5jbHVkZSkgPSBAXzsK
KyAgICAgICAgbXkgKCRvdmVybG9hZCwgJGNvbmRpdGlvbiwgJGNvbmRpdGlvbkNhblRocm93LCAk
aW5jbHVkZSkgPSBAXzsKICAgICAgICAgcmV0dXJuIHVubGVzcyAkb3ZlcmxvYWQ7CiAgICAgICAg
IG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlv
bmFsU3RyaW5nKCRvdmVybG9hZCk7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7
Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBpZiAoJGNvbmRpdGlvbilcbiAgICAiKSBpZiAkY29u
ZGl0aW9uOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICgiIC4gJG92ZXJsb2FkRnVuY3Rpb25QcmVmaXggLiAkb3Zlcmxv
YWQtPntvdmVybG9hZEluZGV4fSAuICRvdmVybG9hZEZ1bmN0aW9uU3VmZml4IC4gIigke3BhcmFt
ZXRlcnNUb0ZvcndhcmR9KSkpO1xuIik7CisgICAgICAgIGlmICgkY29uZGl0aW9uICYmICRjb25k
aXRpb25DYW5UaHJvdykgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICBib29s
IHN1Y2Nlc3MgPSAkY29uZGl0aW9uO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICBpZiAoc3VjY2Vz
cylcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICgiIC4gJG92ZXJsb2FkRnVuY3Rpb25QcmVm
aXggLiAkb3ZlcmxvYWQtPntvdmVybG9hZEluZGV4fSAuICRvdmVybG9hZEZ1bmN0aW9uU3VmZml4
IC4gIigke3BhcmFtZXRlcnNUb0ZvcndhcmR9KSkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgfVxuIik7CisgICAgICAgIH0gZWxzaWYgKCRjb25kaXRpb24p
IHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBpZiAoJGNvbmRpdGlv
bilcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKCIgLiAkb3ZlcmxvYWRGdW5jdGlvblByZWZpeCAu
ICRvdmVybG9hZC0+e292ZXJsb2FkSW5kZXh9IC4gJG92ZXJsb2FkRnVuY3Rpb25TdWZmaXggLiAi
KCR7cGFyYW1ldGVyc1RvRm9yd2FyZH0pKSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKCIgLiAkb3ZlcmxvYWRGdW5jdGlvblByZWZpeCAuICRvdmVybG9hZC0+e292ZXJs
b2FkSW5kZXh9IC4gJG92ZXJsb2FkRnVuY3Rpb25TdWZmaXggLiAiKCR7cGFyYW1ldGVyc1RvRm9y
d2FyZH0pKSk7XG4iKTsKKyAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNl
bmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICBBZGRUb0ltcGxJbmNsdWRl
cygkaW5jbHVkZSwgJG92ZXJsb2FkLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0p
IGlmICRpbmNsdWRlOwogICAgIH07CkBAIC0zNzc5LDcgKzM3OTAsNyBAQCBzdWIgR2VuZXJhdGVP
dmVybG9hZERpc3BhdGNoZXIKIAogICAgICAgICAgICAgIyBGSVhNRTogQXZvaWQgaW52b2tpbmcg
R2V0TWV0aG9kKG9iamVjdCwgU3ltYm9sLml0ZXJhdG9yKSBhZ2FpbiBpbiBjb252ZXJ0PElETFNl
cXVlbmNlPFQ+PiguLi4pLgogICAgICAgICAgICAgJG92ZXJsb2FkID0gR2V0T3ZlcmxvYWRUaGF0
TWF0Y2hlcygkUywgJGQsIFwmJGlzU2VxdWVuY2VPckZyb3plbkFycmF5UGFyYW1ldGVyKTsKLSAg
ICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJo
YXNJdGVyYXRvck1ldGhvZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBkaXN0aW5ndWlzaGluZ0FyZyki
LCAiPEphdmFTY3JpcHRDb3JlL0l0ZXJhdG9yT3BlcmF0aW9ucy5oPiIpOworICAgICAgICAgICAg
JiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImhhc0l0ZXJhdG9y
TWV0aG9kKGxleGljYWxHbG9iYWxPYmplY3QsIGRpc3Rpbmd1aXNoaW5nQXJnKSIsIDEsICI8SmF2
YVNjcmlwdENvcmUvSXRlcmF0b3JPcGVyYXRpb25zLmg+Iik7CiAKICAgICAgICAgICAgICRvdmVy
bG9hZCA9IEdldE92ZXJsb2FkVGhhdE1hdGNoZXMoJFMsICRkLCBcJiRpc0RpY3Rpb25hcnlPclJl
Y29yZE9yT2JqZWN0T3JDYWxsYmFja0ludGVyZmFjZVBhcmFtZXRlcik7CiAgICAgICAgICAgICAm
JGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA3NWViNDNiZjIxMTQuLmFlODVhYTcx
MzZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKQEAgLTc3OTUsOCArNzc5NSwxMiBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1l
dGhvZE92ZQogICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kOUJvZHkobGV4aWNhbEdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwogICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzPEpTQmxvYj4odm0pKQogICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kMTNCb2R5KGxl
eGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKLSAgICAgICAgaWYg
KGhhc0l0ZXJhdG9yTWV0aG9kKGxleGljYWxHbG9iYWxPYmplY3QsIGRpc3Rpbmd1aXNoaW5nQXJn
KSkKLSAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDdCb2R5KGxleGljYWxHbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgeworICAgICAgICAgICAgYm9v
bCBzdWNjZXNzID0gaGFzSXRlcmF0b3JNZXRob2QobGV4aWNhbEdsb2JhbE9iamVjdCwgZGlzdGlu
Z3Vpc2hpbmdBcmcpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCB7IH0pOworICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgICAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVy
bG9hZGVkTWV0aG9kN0JvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRU
aGlzKSkpOworICAgICAgICB9CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVj
dCgpKQogICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kNUJvZHkobGV4aWNhbEdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNOdW1iZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAppbmRleCA2MjVkNmVjMDhiMTAuLjYyZTBl
M2RmZGEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApAQCAtMTM2LDggKzEzNiwxMiBAQCB0ZW1wbGF0ZTw+
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzVwogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gY2FsbEZy
YW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UxKGxl
eGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpKTsKLSAgICAgICAgaWYgKGhhc0l0ZXJhdG9y
TWV0aG9kKGxleGljYWxHbG9iYWxPYmplY3QsIGRpc3Rpbmd1aXNoaW5nQXJnKSkKLSAgICAgICAg
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoY29uc3RydWN0SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTEobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKSkpOworICAgICAgICB7CisgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBoYXNJdGVyYXRv
ck1ldGhvZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBkaXN0aW5ndWlzaGluZ0FyZyk7CisgICAgICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgICAgICAgICBp
ZiAoc3VjY2VzcykKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UxKGxl
eGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpKTsKKyAgICAgICAgfQogICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNXaXRoU2VxdWVuY2UyKGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpKTsK
ICAgICB9CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>