<?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>226193</bug_id>
          
          <creation_ts>2021-05-24 15:42:58 -0700</creation_ts>
          <short_desc>Fix more GCC warnings</short_desc>
          <delta_ts>2021-06-04 13:54:15 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226557</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=226643</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155047</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>aperez</cc>
    
    <cc>benjamin</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1763288</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-05-24 15:42:58 -0700</bug_when>
    <thetext>Let&apos;s fix another round of newly-introduced GCC warnings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763295</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-05-24 15:52:44 -0700</bug_when>
    <thetext>One of these is really frustrating me. I wonder if anybody else sees a problem with this code, or whether GCC&apos;s warning is just bogus here:

[643/1468] Building CXX object Source/WebCore/CMakeFiles/W...vedSources/unified-sources/UnifiedSource-4babe430-49.cpp.o
In file included from WTF/Headers/wtf/text/StringImpl.h:32,
                 from WTF/Headers/wtf/text/WTFString.h:31,
                 from ../../Source/WebCore/dom/Exception.h:30,
                 from ../../Source/WebCore/dom/ExceptionOr.h:29,
                 from ../../Source/WebCore/dom/Event.h:29,
                 from ../../Source/WebCore/Modules/websockets/CloseEvent.h:33,
                 from ../../Source/WebCore/Modules/websockets/CloseEvent.cpp:27,
                 from WebCore/DerivedSources/unified-sources/UnifiedSource-4babe430-49.cpp:3:
In member function ‘T* WTF::PackedAlignedPtr&lt;T, &lt;anonymous&gt; &gt;::get() const [with T = JSC::SharedArrayBufferContents; long unsigned int passedAlignment = 1]’,
    inlined from ‘WTF::PackedAlignedPtr&lt;T, &lt;anonymous&gt; &gt;::operator bool() const [with T = JSC::SharedArrayBufferContents; long unsigned int passedAlignment = 1]’ at WTF/Headers/wtf/Packed.h:194:48,
    inlined from ‘WTF::RefPtr&lt;T, &lt;template-parameter-1-2&gt;, &lt;template-parameter-1-3&gt; &gt;::operator WTF::RefPtr&lt;T, &lt;template-parameter-1-2&gt;, &lt;template-parameter-1-3&gt; &gt;::UnspecifiedBoolType() const [with T = JSC::SharedArrayBufferContents; _PtrTraits = WTF::PackedPtrTraits&lt;JSC::SharedArrayBufferContents&gt;; _RefDerefTraits = WTF::DefaultRefDerefTraits&lt;JSC::SharedArrayBufferContents&gt;]’ at WTF/Headers/wtf/RefPtr.h:91:57,
    inlined from ‘bool JSC::ArrayBufferContents::isShared() const’ at JavaScriptCore/PrivateHeaders/JavaScriptCore/ArrayBuffer.h:84:36,
    inlined from ‘bool JSC::ArrayBuffer::isShared() const’ at JavaScriptCore/PrivateHeaders/JavaScriptCore/ArrayBuffer.h:202:31,
    inlined from ‘WTF::RefPtr&lt;JSC::ArrayBuffer&gt; JSC::ArrayBufferView::unsharedBuffer() const’ at JavaScriptCore/PrivateHeaders/JavaScriptCore/ArrayBufferView.h:60:9,
    inlined from ‘WebCore::ExceptionOr&lt;void&gt; WebCore::WebSocket::send(JSC::ArrayBufferView&amp;)’ at ../../Source/WebCore/Modules/websockets/WebSocket.cpp:390:52:
WTF/Headers/wtf/Packed.h:143:15: warning: ‘void* memcpy(void*, const void*, size_t)’ offset [0, 5] is out of the bounds [0, 0] [-Warray-bounds]
  143 |         memcpy(static_cast&lt;void*&gt;(&amp;value), static_cast&lt;void*&gt;(const_cast&lt;uint8_t*&gt;(m_storage.data())), storageSize);
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


GCC&apos;s -Warray-bounds warning is frankly pretty crappy. It&apos;s usually a false-positive, so I normally wouldn&apos;t worry too much about suppressing it. But in this case, suppressing it introduces a -Wstringop-overread warning:

[641/1468] Building CXX object Source/WebCore/CMakeFiles/W...vedSources/unified-sources/UnifiedSource-4babe430-49.cpp.o
In file included from WTF/Headers/wtf/text/StringImpl.h:32,
                 from WTF/Headers/wtf/text/WTFString.h:31,
                 from ../../Source/WebCore/dom/Exception.h:30,
                 from ../../Source/WebCore/dom/ExceptionOr.h:29,
                 from ../../Source/WebCore/dom/Event.h:29,
                 from ../../Source/WebCore/Modules/websockets/CloseEvent.h:33,
                 from ../../Source/WebCore/Modules/websockets/CloseEvent.cpp:27,
                 from WebCore/DerivedSources/unified-sources/UnifiedSource-4babe430-49.cpp:3:
In member function ‘T* WTF::PackedAlignedPtr&lt;T, &lt;anonymous&gt; &gt;::get() const [with T = JSC::SharedArrayBufferContents; long unsigned int passedAlignment = 1]’,
    inlined from ‘WTF::PackedAlignedPtr&lt;T, &lt;anonymous&gt; &gt;::operator bool() const [with T = JSC::SharedArrayBufferContents; long unsigned int passedAlignment = 1]’ at WTF/Headers/wtf/Packed.h:194:48,
    inlined from ‘WTF::RefPtr&lt;T, &lt;template-parameter-1-2&gt;, &lt;template-parameter-1-3&gt; &gt;::operator WTF::RefPtr&lt;T, &lt;template-parameter-1-2&gt;, &lt;template-parameter-1-3&gt; &gt;::UnspecifiedBoolType() const [with T = JSC::SharedArrayBufferContents; _PtrTraits = WTF::PackedPtrTraits&lt;JSC::SharedArrayBufferContents&gt;; _RefDerefTraits = WTF::DefaultRefDerefTraits&lt;JSC::SharedArrayBufferContents&gt;]’ at WTF/Headers/wtf/RefPtr.h:91:57,
    inlined from ‘bool JSC::ArrayBufferContents::isShared() const’ at JavaScriptCore/PrivateHeaders/JavaScriptCore/ArrayBuffer.h:84:36,
    inlined from ‘bool JSC::ArrayBuffer::isShared() const’ at JavaScriptCore/PrivateHeaders/JavaScriptCore/ArrayBuffer.h:202:31,
    inlined from ‘WTF::RefPtr&lt;JSC::ArrayBuffer&gt; JSC::ArrayBufferView::unsharedBuffer() const’ at JavaScriptCore/PrivateHeaders/JavaScriptCore/ArrayBufferView.h:60:9,
    inlined from ‘WebCore::ExceptionOr&lt;void&gt; WebCore::WebSocket::send(JSC::ArrayBufferView&amp;)’ at ../../Source/WebCore/Modules/websockets/WebSocket.cpp:390:52:
WTF/Headers/wtf/Packed.h:143:15: warning: ‘void* memcpy(void*, const void*, size_t)’ reading 6 bytes from a region of size 0 [-Wstringop-overread]
  143 |         memcpy(static_cast&lt;void*&gt;(&amp;value), static_cast&lt;void*&gt;(const_cast&lt;uint8_t*&gt;(m_storage.data())), storageSize);
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


And that has got me worried, because -Wstringop-overread is a good warning and I do not remember seeing a false-positive -Wstringop-overread before. But I also do not see any problems with this code. The code is not going crazy here: it seems to be careful to check the size of its buffers. Maybe I am missing something?

Anyway, I assume they are both false-positives, because I don&apos;t see anything wrong, but I&apos;m calling them out because they leave me a little nervous.

(There&apos;s also a new -Wnonnull in JITCall.cpp complaining that the &quot;this&quot; pointer can be nullptr in JIT::compileOpCall. As usual, GCC shows no evidence for why we should believe this extraordinary claim. If it&apos;s possible, it is far from clear bbhow.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763297</commentid>
    <comment_count>2</comment_count>
      <attachid>429581</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-05-24 15:55:11 -0700</bug_when>
    <thetext>Created attachment 429581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763299</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-05-24 16:00:53 -0700</bug_when>
    <thetext>(CC: Robin for reminder about -Wclass-memaccess. The way to suppress when you&apos;re doing something weird and intentionally want to avoid running constructors/destructors is to static_cast&lt;void*&gt;() when passing any object pointer to memset()/memcpy() etc.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763880</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-05-26 05:30:52 -0700</bug_when>
    <thetext>Ping reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766183</commentid>
    <comment_count>5</comment_count>
      <attachid>429581</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-02 15:17:24 -0700</bug_when>
    <thetext>Comment on attachment 429581
Patch

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

&gt; Source/WTF/wtf/Packed.h:149
&gt; +// https://bugs.webkit.org/show_bug.cgi?id=226193
&gt; +IGNORE_GCC_WARNINGS_BEGIN(&quot;stringop-overread&quot;)
&gt; +IGNORE_GCC_WARNINGS_BEGIN(&quot;array-bounds&quot;)
&gt;  #if CPU(LITTLE_ENDIAN)
&gt; -        memcpy(&amp;value, m_storage.data(), storageSize);
&gt; +        memcpy(static_cast&lt;void*&gt;(&amp;value), static_cast&lt;void*&gt;(const_cast&lt;uint8_t*&gt;(m_storage.data())), storageSize);
&gt;  #else
&gt; -        memcpy(bitwise_cast&lt;uint8_t*&gt;(&amp;value) + (sizeof(void*) - storageSize), m_storage.data(), storageSize);
&gt; +        memcpy(static_cast&lt;void*&gt;(bitwise_cast&lt;uint8_t*&gt;(&amp;value) + (sizeof(void*) - storageSize)), static_cast&lt;void*&gt;(const_cast&lt;uint8_t*&gt;(m_storage.data())), storageSize);
&gt;  #endif
&gt; +IGNORE_GCC_WARNINGS_END
&gt; +IGNORE_GCC_WARNINGS_END

IMO this merits an entirely separate bug report.

Let&apos;s use this bug for the easy warnings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766190</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-02 15:42:15 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; IMO this merits an entirely separate bug report.

Bug #226557

&gt; Let&apos;s use this bug for the easy warnings.

There are several more than last week, because of course there are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766195</commentid>
    <comment_count>7</comment_count>
      <attachid>430415</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-02 16:03:27 -0700</bug_when>
    <thetext>Created attachment 430415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766215</commentid>
    <comment_count>8</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-06-02 16:44:33 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #3)
&gt; (CC: Robin for reminder about -Wclass-memaccess. The way to suppress when
&gt; you&apos;re doing something weird and intentionally want to avoid running
&gt; constructors/destructors is to static_cast&lt;void*&gt;() when passing any object
&gt; pointer to memset()/memcpy() etc.)

Thanks for the tip!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766450</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-03 11:06:48 -0700</bug_when>
    <thetext>Ping reviewers, let&apos;s land this please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766474</commentid>
    <comment_count>10</comment_count>
      <attachid>430415</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-03 12:20:48 -0700</bug_when>
    <thetext>Comment on attachment 430415
Patch

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

&gt; Source/JavaScriptCore/jit/JITCall.cpp:258
&gt; +IGNORE_ERRONEOUS_GCC_NULL_CHECK_WARNINGS_BEGIN
&gt;      auto slowPaths = info-&gt;emitFastPath(*this, regT0, regT2, CallLinkInfo::UseDataIC::Yes);
&gt; +IGNORE_ERRONEOUS_GCC_NULL_CHECK_WARNINGS_END

This looks not great to me. Can you bypass this warning without messing up the code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766484</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-03 12:43:43 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #10)
&gt; This looks not great to me. Can you bypass this warning without messing up
&gt; the code?

Not that I know of. We have a special suppression macro that says ERRONEOUS for a reason, unfortunately. :( The null check warning is for &quot;this&quot; and I assume it&apos;s bogus. If you see some way &quot;this&quot; can plausibly be null there, then of course that would be a disaster that we ought to fix, but GCC isn&apos;t going to give us any hints as to how it might be possible. I&apos;ll note that normally when &quot;this&quot; becomes invalid during a function call, it&apos;s normally a use-after-free vulnerability where &quot;this&quot; is left dangling because it got destroyed somewhere else by mistake. It would be *very* unusual for &quot;this&quot; to somehow become set to null.

I&apos;m tempted to disable -Wnonnull globally when building with GCC, because since GCC 11 it&apos;s just a bunch of false-positives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766487</commentid>
    <comment_count>12</comment_count>
      <attachid>430415</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-03 12:54:33 -0700</bug_when>
    <thetext>Comment on attachment 430415
Patch

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

&gt;&gt; Source/JavaScriptCore/jit/JITCall.cpp:258
&gt;&gt; +IGNORE_ERRONEOUS_GCC_NULL_CHECK_WARNINGS_END
&gt; 
&gt; This looks not great to me. Can you bypass this warning without messing up the code?

Adrian suggested adding an assert, so I tried: RELEASE_ASSERT(this) right before the call. This made it worse by introducing a long chain of -Wnonnull-compare warnings and didn&apos;t fix the original -Wnonnull. FWIW the full warning with our current unmodified code is:

[3/3414] Building CXX object Source/JavaScriptCore/CMakeF...vedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp.o
In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp:7:
../../Source/JavaScriptCore/jit/JITCall.cpp: In member function ‘void JSC::JIT::compileOpCall(const JSC::Instruction*, unsigned int) [with Op = JSC::OpCallEval]’:
../../Source/JavaScriptCore/jit/JITCall.cpp:256:10: warning: ‘this’ pointer is null [-Wnonnull]
  256 |     auto slowPaths = info-&gt;emitFastPath(*this, regT0, regT2, CallLinkInfo::UseDataIC::Yes);
      |          ^~~~~~~~~
In file included from ../../Source/JavaScriptCore/bytecode/CodeBlock.h:34,
                 from ../../Source/JavaScriptCore/jit/AssemblyHelpers.h:30,
                 from ../../Source/JavaScriptCore/jit/CCallHelpers.h:30,
                 from ../../Source/JavaScriptCore/jit/JITAddGenerator.h:30,
                 from ../../Source/JavaScriptCore/jit/JITAddGenerator.cpp:27,
                 from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp:1:
../../Source/JavaScriptCore/bytecode/CallLinkInfo.h:178:30: note: in a call to non-static member function ‘JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::JumpList JSC::CallLinkInfo::emitFastPath(JSC::CCallHelpers&amp;, JSC::GPRReg, JSC::GPRReg, JSC::CallLinkInfo::UseDataIC)’
  178 |     MacroAssembler::JumpList emitFastPath(CCallHelpers&amp;, GPRReg calleeGPR, GPRReg callLinkInfoGPR, UseDataIC) WARN_UNUSED_RETURN;
      |                              ^~~~~~~~~~~~</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766488</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-03 12:56:40 -0700</bug_when>
    <thetext>Ugh sorry, it&apos;s warning that *info* might be null, it&apos;s only &quot;this&quot; inside the call to CallLinkInfo::emitFastPath. So confusing. :/ Let me try RELEASE_ASSERT(info) and see what happens....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766498</commentid>
    <comment_count>14</comment_count>
      <attachid>430415</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-03 13:33:05 -0700</bug_when>
    <thetext>Comment on attachment 430415
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/jit/JITCall.cpp:258
&gt;&gt;&gt; +IGNORE_ERRONEOUS_GCC_NULL_CHECK_WARNINGS_END
&gt;&gt; 
&gt;&gt; This looks not great to me. Can you bypass this warning without messing up the code?
&gt; 
&gt; Adrian suggested adding an assert, so I tried: RELEASE_ASSERT(this) right before the call. This made it worse by introducing a long chain of -Wnonnull-compare warnings and didn&apos;t fix the original -Wnonnull. FWIW the full warning with our current unmodified code is:
&gt; 
&gt; [3/3414] Building CXX object Source/JavaScriptCore/CMakeF...vedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp.o
&gt; In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp:7:
&gt; ../../Source/JavaScriptCore/jit/JITCall.cpp: In member function ‘void JSC::JIT::compileOpCall(const JSC::Instruction*, unsigned int) [with Op = JSC::OpCallEval]’:
&gt; ../../Source/JavaScriptCore/jit/JITCall.cpp:256:10: warning: ‘this’ pointer is null [-Wnonnull]
&gt;   256 |     auto slowPaths = info-&gt;emitFastPath(*this, regT0, regT2, CallLinkInfo::UseDataIC::Yes);
&gt;       |          ^~~~~~~~~
&gt; In file included from ../../Source/JavaScriptCore/bytecode/CodeBlock.h:34,
&gt;                  from ../../Source/JavaScriptCore/jit/AssemblyHelpers.h:30,
&gt;                  from ../../Source/JavaScriptCore/jit/CCallHelpers.h:30,
&gt;                  from ../../Source/JavaScriptCore/jit/JITAddGenerator.h:30,
&gt;                  from ../../Source/JavaScriptCore/jit/JITAddGenerator.cpp:27,
&gt;                  from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp:1:
&gt; ../../Source/JavaScriptCore/bytecode/CallLinkInfo.h:178:30: note: in a call to non-static member function ‘JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::JumpList JSC::CallLinkInfo::emitFastPath(JSC::CCallHelpers&amp;, JSC::GPRReg, JSC::GPRReg, JSC::CallLinkInfo::UseDataIC)’
&gt;   178 |     MacroAssembler::JumpList emitFastPath(CCallHelpers&amp;, GPRReg calleeGPR, GPRReg callLinkInfoGPR, UseDataIC) WARN_UNUSED_RETURN;
&gt;       |                              ^~~~~~~~~~~~

OK, RELEASE_ASSERT() works after all. So we can do:

RELEASE_ASSERT(info);
auto slowPaths = info-&gt;emitFastPath(*this, regT0, regT2, CallLinkInfo::UseDataIC::Yes);

Yusuke, do you prefer that to using IGNORE_ERRONEOUS_GCC_NULL_CHECK_WARNINGS_BEGIN?

Now that I realize GCC is complaining about &quot;info&quot; rather than &quot;this&quot; -- it&apos;s highlighting the totally wrong portion of the line there and I claim its error message is incorrect, it should say &quot;info&quot; rather than &quot;this&quot; -- well it makes more sense why it&apos;s complaining, and I&apos;m less-inclined to label this case erroneous. It sure does look like info can be null there. Could you look at this case please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766697</commentid>
    <comment_count>15</comment_count>
      <attachid>430415</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-06-04 00:38:08 -0700</bug_when>
    <thetext>Comment on attachment 430415
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/jit/JITCall.cpp:258
&gt;&gt;&gt;&gt; +IGNORE_ERRONEOUS_GCC_NULL_CHECK_WARNINGS_END
&gt;&gt;&gt; 
&gt;&gt;&gt; This looks not great to me. Can you bypass this warning without messing up the code?
&gt;&gt; 
&gt;&gt; Adrian suggested adding an assert, so I tried: RELEASE_ASSERT(this) right before the call. This made it worse by introducing a long chain of -Wnonnull-compare warnings and didn&apos;t fix the original -Wnonnull. FWIW the full warning with our current unmodified code is:
&gt;&gt; 
&gt;&gt; [3/3414] Building CXX object Source/JavaScriptCore/CMakeF...vedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp.o
&gt;&gt; In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp:7:
&gt;&gt; ../../Source/JavaScriptCore/jit/JITCall.cpp: In member function ‘void JSC::JIT::compileOpCall(const JSC::Instruction*, unsigned int) [with Op = JSC::OpCallEval]’:
&gt;&gt; ../../Source/JavaScriptCore/jit/JITCall.cpp:256:10: warning: ‘this’ pointer is null [-Wnonnull]
&gt;&gt;   256 |     auto slowPaths = info-&gt;emitFastPath(*this, regT0, regT2, CallLinkInfo::UseDataIC::Yes);
&gt;&gt;       |          ^~~~~~~~~
&gt;&gt; In file included from ../../Source/JavaScriptCore/bytecode/CodeBlock.h:34,
&gt;&gt;                  from ../../Source/JavaScriptCore/jit/AssemblyHelpers.h:30,
&gt;&gt;                  from ../../Source/JavaScriptCore/jit/CCallHelpers.h:30,
&gt;&gt;                  from ../../Source/JavaScriptCore/jit/JITAddGenerator.h:30,
&gt;&gt;                  from ../../Source/JavaScriptCore/jit/JITAddGenerator.cpp:27,
&gt;&gt;                  from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-3a3c4ec0-3.cpp:1:
&gt;&gt; ../../Source/JavaScriptCore/bytecode/CallLinkInfo.h:178:30: note: in a call to non-static member function ‘JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::JumpList JSC::CallLinkInfo::emitFastPath(JSC::CCallHelpers&amp;, JSC::GPRReg, JSC::GPRReg, JSC::CallLinkInfo::UseDataIC)’
&gt;&gt;   178 |     MacroAssembler::JumpList emitFastPath(CCallHelpers&amp;, GPRReg calleeGPR, GPRReg callLinkInfoGPR, UseDataIC) WARN_UNUSED_RETURN;
&gt;&gt;       |                              ^~~~~~~~~~~~
&gt; 
&gt; OK, RELEASE_ASSERT() works after all. So we can do:
&gt; 
&gt; RELEASE_ASSERT(info);
&gt; auto slowPaths = info-&gt;emitFastPath(*this, regT0, regT2, CallLinkInfo::UseDataIC::Yes);
&gt; 
&gt; Yusuke, do you prefer that to using IGNORE_ERRONEOUS_GCC_NULL_CHECK_WARNINGS_BEGIN?
&gt; 
&gt; Now that I realize GCC is complaining about &quot;info&quot; rather than &quot;this&quot; -- it&apos;s highlighting the totally wrong portion of the line there and I claim its error message is incorrect, it should say &quot;info&quot; rather than &quot;this&quot; -- well it makes more sense why it&apos;s complaining, and I&apos;m less-inclined to label this case erroneous. It sure does look like info can be null there. Could you look at this case please?

I had a suspicion that asserting that something is non-null might make the compiler
assume that the value will be non-NULL afterwards — the first time I saw this kind
of behavior was in the Rust compiler a few years ago, which was mind-blowing because
then it also went ahead and did additional optimizations possible under the asserted
assumption. C/C++ were not that smart then :]

This being the only change there are doubts about, I think we can land the patch
as-is sans this change so we can avoid most of the warning spam during compilation
sooner; then do a follow-up to address this one.

Michael, feel free to land the patch *without* this first, if you feel so inclined.

By all means if you or Yusuke manage to figure out whether “info“ can be NULL (or not)
here, updating the patch is also an option — sadly, I won&apos;t have time today to help
with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766755</commentid>
    <comment_count>16</comment_count>
      <attachid>430574</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-04 07:25:29 -0700</bug_when>
    <thetext>Created attachment 430574
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766766</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-04 08:03:07 -0700</bug_when>
    <thetext>Committed r278458 (238478@main): &lt;https://commits.webkit.org/238478@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430574.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766922</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-06-04 13:54:15 -0700</bug_when>
    <thetext>There are two remaining warnings: bug #226557 and bug #226643.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429581</attachid>
            <date>2021-05-24 15:55:11 -0700</date>
            <delta_ts>2021-06-02 16:03:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226193-20210524175510.patch</filename>
            <type>text/plain</type>
            <size>6404</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YmE4NmE0M2RlYmJlOTRhOGMyNWUwOGVhYjlhNjNhNThhZDFmNGM0Li5kMjYwZTdhYmRjYWM2MjZi
YTI2ZjVlZWI1ZDg3YTYyM2RiMTkzNzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0wNS0yNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdu
b21lLm9yZz4KKworICAgICAgICBGaXggbW9yZSBHQ0Mgd2FybmluZ3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE5MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaml0L0pJVENhbGwuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOiBTdXBwcmVzcyBzZWVtaW5nbHktYm9ndXMg
LVdub25udWxsIHdhcm5pbmcuCisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6Cisg
ICAgICAgIChKU0M6OnZpcnR1YWxUaHVua0Zvcik6IFN1cHByZXNzIC1XcmV0dXJuLXR5cGUgd2Fy
bmluZy4KKwogMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgQ2hlY2tlZExvY2sgdGhlIGRlZmF1bHQgTG9jawpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAxNjNkYzY2OWRk
YzBjYjA0ZjI4YmI5ZTljZTkwZjJlZjU4NTZlNWMwLi44MDgyNWM5YzNjZjZlN2Q2OTUyNmJiZmRh
ODA0OTg3NGZmZTU2ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA1LTI0ICBNaWNoYWVs
IENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgorCisgICAgICAgIEZpeCBtb3JlIEdD
QyB3YXJuaW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2MTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvUGFja2VkLmg6CisgICAgICAgIChXVEY6OlBhY2tlZEFsaWduZWRQdHI6OmdldCBj
b25zdCk6CisgICAgICAgICogd3RmL1NtYWxsU2V0Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIENoZWNrZWRMb2NrIHRoZSBk
ZWZhdWx0IExvY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmOTQ3YzAxNTcwN2MzYTQwMjE3OWI0ZWZiZGQwMTdi
OWFhMzRjZDRjLi5lMjAzMDcyNGU0MGI3ZjViMTkxNzBlMjVkZTZhMjYyYzQyNGE5Y2EwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDUtMjQgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgRml4IG1vcmUgR0NDIHdhcm5pbmdzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxOTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwcmVzcyAt
V3VudXNlZC1wYXJhbWV0ZXIgd2FybmluZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1E
aXNwbGF5WDExOjpzdXBwb3J0c0dMWCBjb25zdCk6CisKIDIwMjEtMDUtMjQgIFRpbSBOZ3V5ZW4g
IDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBoYW5kbGluZyBvZiBgLXdlYmtp
dC1pbmxpbmUtZmxleGAvYC13ZWJraXQtZmxleGAgQ1NTIGRpc3BsYXkgdmFsdWVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAppbmRleCA2OTZlZjg2NGZmY2U4ZTQzNDFmMDE2ZDE3
ZjYwZWVjNDVkYTViN2ExLi41NDdjNGZkZGJlZDBkNGI1Yjg0MTcyYTRkNDQxMDVjM2RiNTFiNjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKQEAgLTI1Myw3ICsyNTMsOSBA
QCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24s
IHVuc2lnbmVkIGNhbGxMaW5rSW5mb0luZAogICAgICAgICByZXR1cm47CiAgICAgfQogCitJR05P
UkVfRVJST05FT1VTX0dDQ19OVUxMX0NIRUNLX1dBUk5JTkdTX0JFR0lOCiAgICAgYXV0byBzbG93
UGF0aHMgPSBpbmZvLT5lbWl0RmFzdFBhdGgoKnRoaXMsIHJlZ1QwLCByZWdUMiwgQ2FsbExpbmtJ
bmZvOjpVc2VEYXRhSUM6Olllcyk7CitJR05PUkVfRVJST05FT1VTX0dDQ19OVUxMX0NIRUNLX1dB
Uk5JTkdTX0VORAogICAgIGF1dG8gZG9uZUxvY2F0aW9uID0gbGFiZWwoKTsKICAgICBhZGRTbG93
Q2FzZShzbG93UGF0aHMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2Vu
ZXJhdG9ycy5jcHAKaW5kZXggMTExNzUzMjAxNjVhNmNmMWJjYTdlNWZlNzY2ZmI1MTk4MWQwMWRj
Yi4uN2E3NzMyMTdiOWIxNWY1MWU1MjQ0NTI1YTQ4OTViZWNkYzVjMTQxMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMzg5LDYgKzM4OSw3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4gdmlydHVhbFRo
dW5rRm9yKFZNJiB2bSwgQ2FsbExpbmtJbmZvCiAgICAgICAgICAgICAgICAgcmV0dXJuIHZpcnR1
YWxUaHVua0ZvckNvbnN0cnVjdENhbGw7CiAgICAgICAgICAgICByZXR1cm4gdmlydHVhbFRodW5r
Rm9yQ29uc3RydWN0Q29uc3RydWN0OwogICAgICAgICB9CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfTsKICAgICByZXR1cm4gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0
b3IoKSkucmV0YWdnZWQ8SklUU3R1YlJvdXRpbmVQdHJUYWc+KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QYWNrZWQuaCBiL1NvdXJjZS9XVEYvd3RmL1BhY2tlZC5oCmluZGV4IGI3
NmFlZjhmMWI2NWFiMDIxNTFhNGRjZGY0YTg0NjFjNzJjOGE4OGIuLmNhNGM5ODE4ZGM2ZDRkNGE2
YzE1ZjgxNGNmN2FkNjNkNDk2Y2ZhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhY2tl
ZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhY2tlZC5oCkBAIC0xMzYsMTEgKzEzNiwxOCBAQCBw
dWJsaWM6CiAgICAgICAgIC8vIEZJWE1FOiBQYWNrZWRQdHI8PiBjYW4gbG9hZCBtZW1vcnkgd2l0
aCBvbmUgbW92IGJ5IGNoZWNraW5nIHBhZ2UgYm91bmRhcnkuCiAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc3NTQKICAgICAgICAgdWludHB0cl90
IHZhbHVlID0gMDsKKworLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjE5MworSUdOT1JFX0dDQ19XQVJOSU5HU19CRUdJTigic3RyaW5nb3Atb3ZlcnJlYWQiKQor
SUdOT1JFX0dDQ19XQVJOSU5HU19CRUdJTigiYXJyYXktYm91bmRzIikKICNpZiBDUFUoTElUVExF
X0VORElBTikKLSAgICAgICAgbWVtY3B5KCZ2YWx1ZSwgbV9zdG9yYWdlLmRhdGEoKSwgc3RvcmFn
ZVNpemUpOworICAgICAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8dm9pZCo+KCZ2YWx1ZSksIHN0YXRp
Y19jYXN0PHZvaWQqPihjb25zdF9jYXN0PHVpbnQ4X3QqPihtX3N0b3JhZ2UuZGF0YSgpKSksIHN0
b3JhZ2VTaXplKTsKICNlbHNlCi0gICAgICAgIG1lbWNweShiaXR3aXNlX2Nhc3Q8dWludDhfdCo+
KCZ2YWx1ZSkgKyAoc2l6ZW9mKHZvaWQqKSAtIHN0b3JhZ2VTaXplKSwgbV9zdG9yYWdlLmRhdGEo
KSwgc3RvcmFnZVNpemUpOworICAgICAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8dm9pZCo+KGJpdHdp
c2VfY2FzdDx1aW50OF90Kj4oJnZhbHVlKSArIChzaXplb2Yodm9pZCopIC0gc3RvcmFnZVNpemUp
KSwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNvbnN0X2Nhc3Q8dWludDhfdCo+KG1fc3RvcmFnZS5kYXRh
KCkpKSwgc3RvcmFnZVNpemUpOwogI2VuZGlmCitJR05PUkVfR0NDX1dBUk5JTkdTX0VORAorSUdO
T1JFX0dDQ19XQVJOSU5HU19FTkQKKwogICAgICAgICBpZiAoaXNBbGlnbm1lbnRTaGlmdFByb2Zp
dGFibGUpCiAgICAgICAgICAgICB2YWx1ZSA8PD0gYWxpZ25tZW50U2hpZnRTaXplOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TbWFsbFNldC5oIGIvU291cmNlL1dURi93dGYvU21hbGxT
ZXQuaAppbmRleCA0NTIzNzEzMmRkODljMzg0NWFkMTk5OWJmNjBkMjhjZDUwYWE5M2JjLi45ZGYx
OWJjNTg0ZGEwZTdhYTNjM2QzNTg2YmU5MDIwNTBhNDY5ZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9TbWFsbFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NtYWxsU2V0LmgKQEAgLTY3
LDcgKzY3LDcgQEAgcHVibGljOgogCiAgICAgU21hbGxTZXQoU21hbGxTZXQmJiBvdGhlcikKICAg
ICB7Ci0gICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNpemVvZihTbWFsbFNldCkpOworICAg
ICAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8dm9pZCo+KHRoaXMpLCBzdGF0aWNfY2FzdDx2b2lkKj4o
Jm90aGVyKSwgc2l6ZW9mKFNtYWxsU2V0KSk7CiAgICAgICAgIG90aGVyLmluaXRpYWxpemUoKTsK
ICAgICB9CiAKQEAgLTIyNSw3ICsyMjUsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgbV9z
aXplID0gMDsKICAgICAgICAgbV9jYXBhY2l0eSA9IFNtYWxsQXJyYXlTaXplOwotICAgICAgICBt
ZW1zZXQobV9pbmxpbmUuc21hbGxTdG9yYWdlLCAtMSwgc2l6ZW9mKFQpICogU21hbGxBcnJheVNp
emUpOworICAgICAgICBtZW1zZXQoc3RhdGljX2Nhc3Q8dm9pZCo+KG1faW5saW5lLnNtYWxsU3Rv
cmFnZSksIC0xLCBzaXplb2YoVCkgKiBTbWFsbEFycmF5U2l6ZSk7CiAgICAgICAgIEFTU0VSVChp
c1NtYWxsKCkpOwogICAgIH0KIApAQCAtMjUyLDcgKzI1Miw3IEBAIHByaXZhdGU6CiAgICAgICAg
IFQqIG9sZEJ1ZmZlciA9IHdhc1NtYWxsID8gbV9pbmxpbmUuc21hbGxTdG9yYWdlIDogbV9pbmxp
bmUuYnVmZmVyOwogICAgICAgICB1bnNpZ25lZCBvbGRDYXBhY2l0eSA9IG1fY2FwYWNpdHk7CiAg
ICAgICAgIFQqIG5ld0J1ZmZlciA9IHN0YXRpY19jYXN0PFQqPihTbWFsbFNldE1hbGxvYzo6bWFs
bG9jKGFsbG9jYXRpb25TaXplKSk7Ci0gICAgICAgIG1lbXNldChuZXdCdWZmZXIsIC0xLCBhbGxv
Y2F0aW9uU2l6ZSk7CisgICAgICAgIG1lbXNldChzdGF0aWNfY2FzdDx2b2lkKj4obmV3QnVmZmVy
KSwgLTEsIGFsbG9jYXRpb25TaXplKTsKICAgICAgICAgbV9jYXBhY2l0eSA9IHNpemU7CiAKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9sZENhcGFjaXR5OyBpKyspIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3Bs
YXlYMTEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3Jt
RGlzcGxheVgxMS5jcHAKaW5kZXggMjM4YzY0OTU0ODJhN2Y5NmM2ZTA0ZGZjNTc3NTI5ZWJiNDRj
NWI5NC4uMTZjNTRiN2I4OGMyOWUxOWFkZDRkYTEyMjVlODA5OWE0NmUzOWIxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgx
MS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3Jt
RGlzcGxheVgxMS5jcHAKQEAgLTE1MCw2ICsxNTAsNyBAQCBib29sIFBsYXRmb3JtRGlzcGxheVgx
MTo6c3VwcG9ydHNHTFgoT3B0aW9uYWw8aW50PiYgZ2x4RXJyb3JCYXNlKSBjb25zdAogICAgIGds
eEVycm9yQmFzZSA9IG1fZ2x4RXJyb3JCYXNlOwogICAgIHJldHVybiBtX3N1cHBvcnRzR0xYLnZh
bHVlKCk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShnbHhFcnJvckJhc2UpOwogICAgIHJldHVy
biBmYWxzZTsKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430415</attachid>
            <date>2021-06-02 16:03:27 -0700</date>
            <delta_ts>2021-06-04 07:25:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226193-20210602180326.patch</filename>
            <type>text/plain</type>
            <size>9426</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
Njk1NWZlYTgyNTllYWRjZTI2ZDkwNDk5ZTEzM2M1ZjZiYzZmNmQ0Li5lYmIxYmVhMDg3YjQ2YWVl
YWU0ZjYzZjExYzdjYTQ0Yjk4Mzk4NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMS0wNi0wMiAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdu
b21lLm9yZz4KKworICAgICAgICBGaXggbW9yZSBHQ0Mgd2FybmluZ3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE5MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCAtV3JldHVybi10eXBlIHdhcm5p
bmdzIGR1ZSB0byBtaXNzaW5nIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCkgd2hlcmUgZXhw
ZWN0ZWQuCisKKyAgICAgICAgQWxzbywgc3VwcHJlc3MgYSBsaWtlbHkgZmFsc2UtcG9zaXRpdmUg
LVdub25udWxsIHdhcm5pbmcuCisKKyAgICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6CisgICAgICAg
IChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgICogaml0L0pJVFBsYW4uY3BwOgor
ICAgICAgICAoSlNDOjpKSVRQbGFuOjp0aWVyIGNvbnN0KToKKyAgICAgICAgKiBqaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcDoKKyAgICAgICAgKEpTQzo6dmlydHVhbFRodW5rRm9yKToKKwogMjAyMS0w
Ni0wMiAgUGFibG8gU2FhdmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBG
aXggYnVpbGQgZXJyb3Igd2l0aCBFTkFCTEVfREZHX0pJVD1PRkYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2IwZjZjNDljOTkw
MDkxZjNiYTZkNDgwNzIxZTIzMGM0ZDllOWUzZS4uMDNjODU0YmVjY2Q0YzUxNDQ4ZjkwMWNlMmMx
NDBkNjAyMDc1ODgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNi0wMiAgTWljaGFlbCBD
YXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBGaXggbW9yZSBHQ0Mg
d2FybmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBtaXNzaW5nIHN0YXRpY19jYXN0PHZvaWQqPiByZXF1aXJlZCB0byBzdXBwcmVzcyBHQ0Mn
cyAtV2NsYXNzLW1lbWFjY2VzcyB3YXJuaW5nIHdoZW4KKyAgICAgICAgaW50ZW50aW9uYWxseSBu
b3QgcnVubmluZyBjb25zdHJ1Y3RvcnMvZGVzdHJ1Y3RvcnMuIFRoZXJlJ3MgYWxyZWFkeSBhIHN0
YXRpY19hc3NlcnQgdG8KKyAgICAgICAgZW5zdXJlIHRoaXMgaXMgc2FmZSwgd2hpY2ggaXMgYmV0
dGVyIHRoYW4gdXN1YWwgZm9yIHVzLgorCisgICAgICAgICogd3RmL1NtYWxsU2V0Lmg6CisKIDIw
MjEtMDYtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9w
IENoZWNrZWQ6OnNhZmVHZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNiODYyNDQ5YjQ5NTg3MmQ3OTY4MzFh
OWIwMTY0YzU3ODJmNzEwMDUuLjVkMzQ4MmJlNzQ1NGJmMDE0NTU3MGJlNWI1ZTFmODdmZjgyMTll
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wNi0wMiAgTWljaGFlbCBDYXRh
bnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBGaXggbW9yZSBHQ0Mgd2Fy
bmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NjE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCAtV3VudXNlZC1wYXJhbWV0ZXIgd2FybmluZ3MuIEFsc28sIGZpeCBhIC1XcmVkdW5kYW50LW1v
dmUgd2FybmluZy4KKworICAgICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlRnJvbUNTU1Rl
eHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENh
aXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dENhaXJvOjpnZXRDVE0g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Q2Fpcm86OnJvdW5kVG9E
ZXZpY2VQaXhlbHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURp
c3BsYXlYMTEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5WDExOjpzdXBw
b3J0c0dMWCBjb25zdCk6CisKIDIwMjEtMDYtMDIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgSGl0LXRlc3RpbmcgZG9lcyBub3QgYWNjb3VudCBmb3IgY2xp
cC1wYXRoIHNldCBvbiBwYXJlbnQgb2YgPGlmcmFtZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTQ5ZDBjNDVkNmY4
NDYzNzFmY2M4NTMzNDc5NzQ4N2IwNzhlNmM1MC4uZGZmMzIzOTEwODgxNTQ1ZTIxYmIzZDJjZTBj
ODE0M2JmMGNkMGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0wMiAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBGaXggbW9y
ZSBHQ0Mgd2FybmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSByZWR1bmRhbnQgV1RGTW92ZSB0aGF0J3MgdHJpZ2dlcmluZyBHQ0MncyAt
V3JlZHVuZGFudC1tb3ZlLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIu
aDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rlcjo6ZGVjb2RlKToKKwogMjAyMS0wNi0wMiAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIy
NzY5OTMpOiA1IFRlc3RXZWJLaXRBUEkuQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb24gKGFwaS10ZXN0
cykgYXJlIGNvbnN0YW50IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNw
cAppbmRleCAxYjQ5ZDQ4OWRhYTJiNzg2YWI3OTM5MmY5YTM0ZWJjNjQ0Y2RhYjE4Li5lN2Q3ZmJm
Y2M5Njc1NzU5MTdjMjk3MDZiNDQwZDI1NGQwNDBhZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ2FsbC5jcHAKQEAgLTI1Myw3ICsyNTMsOSBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2Fs
bChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIGNhbGxMaW5rSW5mb0lu
ZAogICAgICAgICByZXR1cm47CiAgICAgfQogCitJR05PUkVfRVJST05FT1VTX0dDQ19OVUxMX0NI
RUNLX1dBUk5JTkdTX0JFR0lOCiAgICAgYXV0byBzbG93UGF0aHMgPSBpbmZvLT5lbWl0RmFzdFBh
dGgoKnRoaXMsIHJlZ1QwLCByZWdUMiwgQ2FsbExpbmtJbmZvOjpVc2VEYXRhSUM6Olllcyk7CitJ
R05PUkVfRVJST05FT1VTX0dDQ19OVUxMX0NIRUNLX1dBUk5JTkdTX0VORAogICAgIGF1dG8gZG9u
ZUxvY2F0aW9uID0gbGFiZWwoKTsKICAgICBhZGRTbG93Q2FzZShzbG93UGF0aHMpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBsYW4uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQbGFuLmNwcAppbmRleCA4OTdhZDU5NjVhYTk5ZTE2MTY4OGQx
ZTVjYjc0ZDZkZTdhNDUzMGZlLi44NTUzNGJkZjE1NTcwZGRmNTc2MDFlNDUzMmU3YmM1OTVkOTAz
MzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBsYW4uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUGxhbi5jcHAKQEAgLTgyLDYgKzgyLDcg
QEAgYXV0byBKSVRQbGFuOjp0aWVyKCkgY29uc3QgLT4gVGllcgogICAgIGNhc2UgSklUQ29tcGls
YXRpb25Nb2RlOjpGVExGb3JPU1JFbnRyeToKICAgICAgICAgcmV0dXJuIFRpZXI6OkZUTDsKICAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogSklUQ29tcGlsYXRp
b25LZXkgSklUUGxhbjo6a2V5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcAppbmRleCAzNDdhNmNjNGExYWFiOGNhYTFjZmJiZjE0MDBiMzJhNjBkZDlm
YzAwLi42ZjJmNWM2MmI1MzE5ZTQ5OWFjOWYyMWY5OWFjYzNjOWFlMjBhZWE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC0zODgsNiArMzg4
LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiB2aXJ0dWFs
VGh1bmtGb3IoVk0mIHZtLCBDYWxsTGlua0luZm8KICAgICAgICAgICAgICAgICByZXR1cm4gdmly
dHVhbFRodW5rRm9yQ29uc3RydWN0Q2FsbDsKICAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsVGh1
bmtGb3JDb25zdHJ1Y3RDb25zdHJ1Y3Q7CiAgICAgICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9OwogICAgIHJldHVybiB2bS5nZXRDVElTdHViKGdlbmVy
YXRvcigpKS5yZXRhZ2dlZDxKSVRTdHViUm91dGluZVB0clRhZz4oKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1NtYWxsU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9TbWFsbFNldC5oCmlu
ZGV4IDQ1MjM3MTMyZGQ4OWMzODQ1YWQxOTk5YmY2MGQyOGNkNTBhYTkzYmMuLjlkZjE5YmM1ODRk
YTBlN2FhM2MzZDM1ODZiZTkwMjA1MGE0NjlmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1NtYWxsU2V0LmgKKysrIGIvU291cmNlL1dURi93dGYvU21hbGxTZXQuaApAQCAtNjcsNyArNjcs
NyBAQCBwdWJsaWM6CiAKICAgICBTbWFsbFNldChTbWFsbFNldCYmIG90aGVyKQogICAgIHsKLSAg
ICAgICAgbWVtY3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKFNtYWxsU2V0KSk7CisgICAgICAgIG1l
bWNweShzdGF0aWNfY2FzdDx2b2lkKj4odGhpcyksIHN0YXRpY19jYXN0PHZvaWQqPigmb3RoZXIp
LCBzaXplb2YoU21hbGxTZXQpKTsKICAgICAgICAgb3RoZXIuaW5pdGlhbGl6ZSgpOwogICAgIH0K
IApAQCAtMjI1LDcgKzIyNSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBtX3NpemUgPSAw
OwogICAgICAgICBtX2NhcGFjaXR5ID0gU21hbGxBcnJheVNpemU7Ci0gICAgICAgIG1lbXNldCht
X2lubGluZS5zbWFsbFN0b3JhZ2UsIC0xLCBzaXplb2YoVCkgKiBTbWFsbEFycmF5U2l6ZSk7Cisg
ICAgICAgIG1lbXNldChzdGF0aWNfY2FzdDx2b2lkKj4obV9pbmxpbmUuc21hbGxTdG9yYWdlKSwg
LTEsIHNpemVvZihUKSAqIFNtYWxsQXJyYXlTaXplKTsKICAgICAgICAgQVNTRVJUKGlzU21hbGwo
KSk7CiAgICAgfQogCkBAIC0yNTIsNyArMjUyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgVCogb2xk
QnVmZmVyID0gd2FzU21hbGwgPyBtX2lubGluZS5zbWFsbFN0b3JhZ2UgOiBtX2lubGluZS5idWZm
ZXI7CiAgICAgICAgIHVuc2lnbmVkIG9sZENhcGFjaXR5ID0gbV9jYXBhY2l0eTsKICAgICAgICAg
VCogbmV3QnVmZmVyID0gc3RhdGljX2Nhc3Q8VCo+KFNtYWxsU2V0TWFsbG9jOjptYWxsb2MoYWxs
b2NhdGlvblNpemUpKTsKLSAgICAgICAgbWVtc2V0KG5ld0J1ZmZlciwgLTEsIGFsbG9jYXRpb25T
aXplKTsKKyAgICAgICAgbWVtc2V0KHN0YXRpY19jYXN0PHZvaWQqPihuZXdCdWZmZXIpLCAtMSwg
YWxsb2NhdGlvblNpemUpOwogICAgICAgICBtX2NhcGFjaXR5ID0gc2l6ZTsKIAogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgb2xkQ2FwYWNpdHk7IGkrKykgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKaW5kZXgg
YmRhZGE1NGUwYzBhM2U0ZmFlMGVkNjFhMTcxMTVhNjA2NjgyMDM0OC4uM2U4YjY4MjY5YWY4NDQz
YWM5MDc5MDQ4MWJlM2RlYWY5ODAwMWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAg
RXhjZXB0aW9uT3I8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPj4gVGltaW5nRnVuY3Rpb246OmNyZWF0
ZUZyb21DU1NUZXh0KGNvbnN0IFN0cmkKICAgICBwcm9wZXJ0aWVzLT5wYXJzZURlY2xhcmF0aW9u
KG1ha2VTdHJpbmcoImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IiwgY3NzVGV4dCksIENTU1Bh
cnNlckNvbnRleHQoSFRNTFN0YW5kYXJkTW9kZSkpOwogICAgIGlmIChhdXRvIHZhbHVlID0gcHJv
cGVydGllcy0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUFuaW1hdGlvblRpbWluZ0Z1
bmN0aW9uKSkgewogICAgICAgICBpZiAoYXV0byBmdW5jdGlvbiA9IGNyZWF0ZUZyb21DU1NWYWx1
ZSgqdmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoZnVuY3Rpb24pOworICAgICAg
ICAgICAgcmV0dXJuIGZ1bmN0aW9uOwogICAgIH0KICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggYTcyOWIwMDcy
ZGI1Y2RlNTI3NmIzNGM5YWZhYTcxNGI3NDg4Yzc0Yy4uYzU5ZWQ5M2VhM2FhMmI5YjQzYWFmOGUy
ODMxZjFiMTU1YTAxMTBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAtODks
NiArODksNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dENhaXJvOjpoYXNQbGF0Zm9ybUNvbnRleHQo
KSBjb25zdAogCiBBZmZpbmVUcmFuc2Zvcm0gR3JhcGhpY3NDb250ZXh0Q2Fpcm86OmdldENUTShJ
bmNsdWRlRGV2aWNlU2NhbGUgaW5jbHVkZVNjYWxlKSBjb25zdAogeworICAgIFVOVVNFRF9QQVJB
TShpbmNsdWRlU2NhbGUpOwogICAgIHJldHVybiBDYWlybzo6U3RhdGU6OmdldENUTSgqcGxhdGZv
cm1Db250ZXh0KCkpOwogfQogCkBAIC0yNTEsNiArMjUyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHRDYWlybzo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmIHJlY3Qs
IERvY3UKIAogRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dENhaXJvOjpyb3VuZFRvRGV2aWNlUGl4
ZWxzKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgUm91bmRpbmdNb2RlIHJvdW5kaW5nTW9kZSkKIHsK
KyAgICBVTlVTRURfUEFSQU0ocm91bmRpbmdNb2RlKTsKICAgICByZXR1cm4gQ2Fpcm86OlN0YXRl
Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzKCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURp
c3BsYXlYMTEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRm
b3JtRGlzcGxheVgxMS5jcHAKaW5kZXggNzVhYTAxYTZmMWM4MTllZGVjN2MxMmY1NjllMzM0YzVj
Y2M5NDBkYi4uYmFkNTZlYmFkMjc2YzMxNmVkNzVmY2RmMmM3NjE0NzE4ZTFmMzJjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxh
eVgxMS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRm
b3JtRGlzcGxheVgxMS5jcHAKQEAgLTE1MCw2ICsxNTAsNyBAQCBib29sIFBsYXRmb3JtRGlzcGxh
eVgxMTo6c3VwcG9ydHNHTFgoc3RkOjpvcHRpb25hbDxpbnQ+JiBnbHhFcnJvckJhc2UpIGNvbnN0
CiAgICAgZ2x4RXJyb3JCYXNlID0gbV9nbHhFcnJvckJhc2U7CiAgICAgcmV0dXJuIG1fc3VwcG9y
dHNHTFgudmFsdWUoKTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGdseEVycm9yQmFzZSk7CiAg
ICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVyLmgKaW5kZXggZTAzYjI1NzlhMzYxZDQ5ODcyN2U1ZDBlODdlN2ExNDliNGQy
OGMwMC4uYmNmN2NkMTYzZDliYTkyM2QxODBhMDNmOGE2ZWU0NTBmNzZjMWExZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaApAQCAtNTUsNyArNTUsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHZvaWQ+IHN0cnVjdCBBcmd1bWVudENvZGVy
IHsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBUIHQ7CiAgICAgICAgICAgICBpZiAoVDo6
ZGVjb2RlKGRlY29kZXIsIHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHQpOwor
ICAgICAgICAgICAgICAgIHJldHVybiB0OwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430574</attachid>
            <date>2021-06-04 07:25:29 -0700</date>
            <delta_ts>2021-06-04 08:03:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226193-20210604092528.patch</filename>
            <type>text/plain</type>
            <size>8635</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZGIxOGEzYjU1MTk5OWE5OWQ4ODA2ZTgzYTA3Njg0YjZmZjhlN2I0Li5lODVkMTcwNjMxNDA0OTE2
NTQ0NjBhOTE2OGFjMjVhZDc1ZjY3Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wNi0wNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdu
b21lLm9yZz4KKworICAgICAgICBGaXggbW9yZSBHQ0Mgd2FybmluZ3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE5MworCisgICAgICAgIFJldmll
d2VkIGJ5IEFkcmlhbiBQZXJleiBkZSBDYXN0cm8uCisKKyAgICAgICAgRml4IC1XcmV0dXJuLXR5
cGUgd2FybmluZ3MgZHVlIHRvIG1pc3NpbmcgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKSB3
aGVyZSBleHBlY3RlZC4KKworICAgICAgICAqIGppdC9KSVRQbGFuLmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUUGxhbjo6dGllciBjb25zdCk6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5j
cHA6CisgICAgICAgIChKU0M6OnZpcnR1YWxUaHVua0Zvcik6CisKIDIwMjEtMDYtMDMgIFJvc3Mg
S2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdIEltcGxl
bWVudCBKSVQgSUNzIGZvciBJbkJ5VmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcyNzFmMWUyYTBjZDVlMTU4OWY2ZTA1ZjAz
ZGFjMzkwMGMzMWVjNzcuLmQ3NzAyZTg5NzUxZjdhNTk0Njg2ZjYyNGY0NjAwZTc5NjdhOGFlZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDYtMDQgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNh
dGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgRml4IG1vcmUgR0NDIHdhcm5pbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxOTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvLgorCisgICAgICAgIEFkZCBt
aXNzaW5nIHN0YXRpY19jYXN0PHZvaWQqPiByZXF1aXJlZCB0byBzdXBwcmVzcyBHQ0MncyAtV2Ns
YXNzLW1lbWFjY2VzcyB3YXJuaW5nIHdoZW4KKyAgICAgICAgaW50ZW50aW9uYWxseSBub3QgcnVu
bmluZyBjb25zdHJ1Y3RvcnMvZGVzdHJ1Y3RvcnMuIFRoZXJlJ3MgYWxyZWFkeSBhIHN0YXRpY19h
c3NlcnQgdG8KKyAgICAgICAgZW5zdXJlIHRoaXMgaXMgc2FmZSwgd2hpY2ggaXMgYmV0dGVyIHRo
YW4gdXN1YWwgZm9yIHVzLgorCisgICAgICAgICogd3RmL1NtYWxsU2V0Lmg6CisKIDIwMjEtMDYt
MDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IGJ1aWxkIGZpeCBhZnRlciByMjc3ODgxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNkNWZjMTFhN2ZlOTY1NWIy
YmExMTBiOTNjMWJhNTRlNTJhOWEzNzcuLmRlMDdjM2Y1Y2ZiOGMzZmI1YzgwY2QxNTY0ODE2MGI3
YTc2M2Q1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wNi0wNCAgTWljaGFl
bCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBGaXggbW9yZSBH
Q0Mgd2FybmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNjE5MworCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmlhbiBQZXJleiBkZSBDYXN0cm8u
CisKKyAgICAgICAgRml4IC1XdW51c2VkLXBhcmFtZXRlciB3YXJuaW5ncy4gQWxzbywgZml4IGEg
LVdyZWR1bmRhbnQtbW92ZSB3YXJuaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9u
L1RpbWluZ0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uOjpj
cmVhdGVGcm9tQ1NTVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
Q2Fpcm86OmdldENUTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRD
YWlybzo6cm91bmRUb0RldmljZVBpeGVscyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
eDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURp
c3BsYXlYMTE6OnN1cHBvcnRzR0xYIGNvbnN0KToKKwogMjAyMS0wNi0wNCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVpbnRyb2R1Y2UgbG9nZ2luZyB1c2Vm
dWwgZm9yIGRlYnVnZ2luZyBpbiBBdWRpb1NhbXBsZURhdGFTb3VyY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGFl
NDQyZmEwMTU1YWQzN2E4Zjk0MjZjOTZjYTYwYWMwMDE2ODUxOS4uNjU5MWI2ZDU0MmJiNmQwOTg0
MWFkOGUyNWU5NTM2YWUxYTI5N2U3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0w
Ni0wNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAg
ICBGaXggbW9yZSBHQ0Mgd2FybmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE5MworCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmlhbiBQZXJl
eiBkZSBDYXN0cm8uCisKKyAgICAgICAgUmVtb3ZlIHJlZHVuZGFudCBXVEZNb3ZlIHRoYXQncyB0
cmlnZ2VyaW5nIEdDQydzIC1XcmVkdW5kYW50LW1vdmUuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvQXJndW1lbnRDb2Rlci5oOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyOjpkZWNvZGUp
OgorCiAyMDIxLTA2LTA0ICBKYW4tTWljaGFlbCBCcnVtbWVyICA8amFuLmJydW1tZXJAdGFib3Mu
b3JnPgogCiAgICAgICAgIFtHVEtdW1dQRV0gRXhwb3NlIHNldENPUlNEaXNhYmxpbmdQYXR0ZXJu
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQbGFuLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUGxhbi5jcHAKaW5kZXggODk3YWQ1OTY1YWE5OWUx
NjE2ODhkMWU1Y2I3NGQ2ZGU3YTQ1MzBmZS4uODU1MzRiZGYxNTU3MGRkZjU3NjAxZTQ1MzJlN2Jj
NTk1ZDkwMzM2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQbGFu
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBsYW4uY3BwCkBAIC04Miw2
ICs4Miw3IEBAIGF1dG8gSklUUGxhbjo6dGllcigpIGNvbnN0IC0+IFRpZXIKICAgICBjYXNlIEpJ
VENvbXBpbGF0aW9uTW9kZTo6RlRMRm9yT1NSRW50cnk6CiAgICAgICAgIHJldHVybiBUaWVyOjpG
VEw7CiAgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIEpJVENv
bXBpbGF0aW9uS2V5IEpJVFBsYW46OmtleSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAKaW5kZXggMzQ3YTZjYzRhMWFhYjhjYWExY2ZiYmYxNDAwYjMy
YTYwZGQ5ZmMwMC4uNmYyZjVjNjJiNTMxOWU0OTlhYzlmMjFmOTlhY2MzYzlhZTIwYWVhNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMzg4
LDYgKzM4OCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4g
dmlydHVhbFRodW5rRm9yKFZNJiB2bSwgQ2FsbExpbmtJbmZvCiAgICAgICAgICAgICAgICAgcmV0
dXJuIHZpcnR1YWxUaHVua0ZvckNvbnN0cnVjdENhbGw7CiAgICAgICAgICAgICByZXR1cm4gdmly
dHVhbFRodW5rRm9yQ29uc3RydWN0Q29uc3RydWN0OwogICAgICAgICB9CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfTsKICAgICByZXR1cm4gdm0uZ2V0Q1RJU3R1
YihnZW5lcmF0b3IoKSkucmV0YWdnZWQ8SklUU3R1YlJvdXRpbmVQdHJUYWc+KCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TbWFsbFNldC5oIGIvU291cmNlL1dURi93dGYvU21hbGxT
ZXQuaAppbmRleCA0NTIzNzEzMmRkODljMzg0NWFkMTk5OWJmNjBkMjhjZDUwYWE5M2JjLi45ZGYx
OWJjNTg0ZGEwZTdhYTNjM2QzNTg2YmU5MDIwNTBhNDY5ZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9TbWFsbFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NtYWxsU2V0LmgKQEAgLTY3
LDcgKzY3LDcgQEAgcHVibGljOgogCiAgICAgU21hbGxTZXQoU21hbGxTZXQmJiBvdGhlcikKICAg
ICB7Ci0gICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNpemVvZihTbWFsbFNldCkpOworICAg
ICAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8dm9pZCo+KHRoaXMpLCBzdGF0aWNfY2FzdDx2b2lkKj4o
Jm90aGVyKSwgc2l6ZW9mKFNtYWxsU2V0KSk7CiAgICAgICAgIG90aGVyLmluaXRpYWxpemUoKTsK
ICAgICB9CiAKQEAgLTIyNSw3ICsyMjUsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgbV9z
aXplID0gMDsKICAgICAgICAgbV9jYXBhY2l0eSA9IFNtYWxsQXJyYXlTaXplOwotICAgICAgICBt
ZW1zZXQobV9pbmxpbmUuc21hbGxTdG9yYWdlLCAtMSwgc2l6ZW9mKFQpICogU21hbGxBcnJheVNp
emUpOworICAgICAgICBtZW1zZXQoc3RhdGljX2Nhc3Q8dm9pZCo+KG1faW5saW5lLnNtYWxsU3Rv
cmFnZSksIC0xLCBzaXplb2YoVCkgKiBTbWFsbEFycmF5U2l6ZSk7CiAgICAgICAgIEFTU0VSVChp
c1NtYWxsKCkpOwogICAgIH0KIApAQCAtMjUyLDcgKzI1Miw3IEBAIHByaXZhdGU6CiAgICAgICAg
IFQqIG9sZEJ1ZmZlciA9IHdhc1NtYWxsID8gbV9pbmxpbmUuc21hbGxTdG9yYWdlIDogbV9pbmxp
bmUuYnVmZmVyOwogICAgICAgICB1bnNpZ25lZCBvbGRDYXBhY2l0eSA9IG1fY2FwYWNpdHk7CiAg
ICAgICAgIFQqIG5ld0J1ZmZlciA9IHN0YXRpY19jYXN0PFQqPihTbWFsbFNldE1hbGxvYzo6bWFs
bG9jKGFsbG9jYXRpb25TaXplKSk7Ci0gICAgICAgIG1lbXNldChuZXdCdWZmZXIsIC0xLCBhbGxv
Y2F0aW9uU2l6ZSk7CisgICAgICAgIG1lbXNldChzdGF0aWNfY2FzdDx2b2lkKj4obmV3QnVmZmVy
KSwgLTEsIGFsbG9jYXRpb25TaXplKTsKICAgICAgICAgbV9jYXBhY2l0eSA9IHNpemU7CiAKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9sZENhcGFjaXR5OyBpKyspIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3Bw
CmluZGV4IGJkYWRhNTRlMGMwYTNlNGZhZTBlZDYxYTE3MTE1YTYwNjY4MjAzNDguLjNlOGI2ODI2
OWFmODQ0M2FjOTA3OTA0ODFiZTNkZWFmOTgwMDFiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcApAQCAtMTQ5LDcgKzE0
OSw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4+IFRpbWluZ0Z1bmN0aW9u
OjpjcmVhdGVGcm9tQ1NTVGV4dChjb25zdCBTdHJpCiAgICAgcHJvcGVydGllcy0+cGFyc2VEZWNs
YXJhdGlvbihtYWtlU3RyaW5nKCJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiIsIGNzc1RleHQp
LCBDU1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1vZGUpKTsKICAgICBpZiAoYXV0byB2YWx1
ZSA9IHByb3BlcnRpZXMtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlBbmltYXRpb25U
aW1pbmdGdW5jdGlvbikpIHsKICAgICAgICAgaWYgKGF1dG8gZnVuY3Rpb24gPSBjcmVhdGVGcm9t
Q1NTVmFsdWUoKnZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKGZ1bmN0aW9uKTsK
KyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICB9CiAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGE3
MjliMDA3MmRiNWNkZTUyNzZiMzRjOWFmYWE3MTRiNzQ4OGM3NGMuLmM1OWVkOTNlYTNhYTJiOWI0
M2FhZjhlMjgzMWYxYjE1NWEwMTEwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAK
QEAgLTg5LDYgKzg5LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRDYWlybzo6aGFzUGxhdGZvcm1D
b250ZXh0KCkgY29uc3QKIAogQWZmaW5lVHJhbnNmb3JtIEdyYXBoaWNzQ29udGV4dENhaXJvOjpn
ZXRDVE0oSW5jbHVkZURldmljZVNjYWxlIGluY2x1ZGVTY2FsZSkgY29uc3QKIHsKKyAgICBVTlVT
RURfUEFSQU0oaW5jbHVkZVNjYWxlKTsKICAgICByZXR1cm4gQ2Fpcm86OlN0YXRlOjpnZXRDVE0o
KnBsYXRmb3JtQ29udGV4dCgpKTsKIH0KIApAQCAtMjUxLDYgKzI1Miw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0Q2Fpcm86OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBEb2N1CiAKIEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHRDYWlybzo6cm91bmRUb0Rl
dmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmIHJlY3QsIFJvdW5kaW5nTW9kZSByb3VuZGluZ01v
ZGUpCiB7CisgICAgVU5VU0VEX1BBUkFNKHJvdW5kaW5nTW9kZSk7CiAgICAgcmV0dXJuIENhaXJv
OjpTdGF0ZTo6cm91bmRUb0RldmljZVBpeGVscygqcGxhdGZvcm1Db250ZXh0KCksIHJlY3QpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxh
dGZvcm1EaXNwbGF5WDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gx
MS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwCmluZGV4IDc1YWEwMWE2ZjFjODE5ZWRlYzdjMTJmNTY5
ZTMzNGM1Y2NjOTQwZGIuLmJhZDU2ZWJhZDI3NmMzMTZlZDc1ZmNkZjJjNzYxNDcxOGUxZjMyYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9y
bURpc3BsYXlYMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gx
MS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwCkBAIC0xNTAsNiArMTUwLDcgQEAgYm9vbCBQbGF0Zm9y
bURpc3BsYXlYMTE6OnN1cHBvcnRzR0xYKHN0ZDo6b3B0aW9uYWw8aW50PiYgZ2x4RXJyb3JCYXNl
KSBjb25zdAogICAgIGdseEVycm9yQmFzZSA9IG1fZ2x4RXJyb3JCYXNlOwogICAgIHJldHVybiBt
X3N1cHBvcnRzR0xYLnZhbHVlKCk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShnbHhFcnJvckJh
c2UpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2Rlci5oCmluZGV4IGUwM2IyNTc5YTM2MWQ0OTg3MjdlNWQwZTg3ZTdh
MTQ5YjRkMjhjMDAuLmJjZjdjZDE2M2Q5YmE5MjNkMTgwYTAzZjhhNmVlNDUwZjc2YzFhMWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmgKQEAgLTU1LDcgKzU1
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSB2b2lkPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlciB7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgVCB0OwogICAgICAgICAgICAg
aWYgKFQ6OmRlY29kZShkZWNvZGVyLCB0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gV1RGTW92
ZSh0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdDsKICAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>