<?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>221441</bug_id>
          
          <creation_ts>2021-02-04 18:07:43 -0800</creation_ts>
          <short_desc>[CoreIPC] Nullptr crash in IPC::Decoder::decode&lt;WebCore::ResourceError&gt;</short_desc>
          <delta_ts>2021-02-05 17:12:25 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gpoo</cc>
    
    <cc>product-security</cc>
    
    <cc>rbuis</cc>
    
    <cc>sam</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1725903</commentid>
    <comment_count>0</comment_count>
      <attachid>419350</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-04 18:07:43 -0800</bug_when>
    <thetext>Created attachment 419350
Test

Using the new IPC testing code I added in https://trac.webkit.org/r268239,
we can reproduce the following crash in macOS ASAN builds (tested in r272114):

=================================================================
==53800==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fff2040301d bp 0x7ffeed1a8070 sp 0x7ffeed1a7e98 T0)

    #0 0x7fff2040301d in CFDictionaryGetCount+0x6 (CoreFoundation:x86_64h+0x2201d)
    #1 0x114ea3fcc in IPC::ArgumentCoder&lt;WebCore::ResourceError, void&gt;::decodePlatformData(IPC::Decoder&amp;, WebCore::ResourceError&amp;) WebCoreArgumentCodersMac.mm:435
    #2 0x1161ecbb7 in IPC::ArgumentCoder&lt;WebCore::ResourceError, void&gt;::decode(IPC::Decoder&amp;, WebCore::ResourceError&amp;) WebCoreArgumentCoders.cpp:1297
    #3 0x1140151a8 in bool IPC::Decoder::decode&lt;WebCore::ResourceError&gt;(WebCore::ResourceError&amp;) Decoder.h:91
    #4 0x1151050c5 in API::Error::decode(IPC::Decoder&amp;, WTF::RefPtr&lt;API::Object, WTF::RawPtrTraits&lt;API::Object&gt;, WTF::DefaultRefDerefTraits&lt;API::Object&gt; &gt;&amp;) APIError.cpp:95
    #5 0x114ffd6dc in WebKit::UserData::decode(IPC::Decoder&amp;, WTF::RefPtr&lt;API::Object, WTF::RawPtrTraits&lt;API::Object&gt;, WTF::DefaultRefDerefTraits&lt;API::Object&gt; &gt;&amp;) UserData.cpp:385
    #6 0x114ffde1a in WebKit::UserData::decode(IPC::Decoder&amp;, WTF::RefPtr&lt;API::Object, WTF::RawPtrTraits&lt;API::Object&gt;, WTF::DefaultRefDerefTraits&lt;API::Object&gt; &gt;&amp;) UserData.cpp:368
    #7 0x114ffd348 in WebKit::UserData::decode(IPC::Decoder&amp;, WebKit::UserData&amp;) UserData.cpp:151
    #8 0x1140621fc in IPC::ArgumentCoder&lt;WebKit::UserData, void&gt;::decode(IPC::Decoder&amp;) ArgumentCoder.h:56
    #9 0x114061fc3 in IPC::Decoder&amp; IPC::Decoder::operator&gt;&gt;&lt;WebKit::UserData&gt;(WTF::Optional&lt;WebKit::UserData&gt;&amp;) Decoder.h:107
    #10 0x114680201 in IPC::TupleDecoderImpl&lt;WebKit::UserData&gt;::decode(IPC::Decoder&amp;) ArgumentCoders.h:317
    #11 0x1161d042e in IPC::TupleDecoderImpl&lt;WTF::String, WebKit::UserData&gt;::decode(IPC::Decoder&amp;) ArgumentCoders.h:304
    #12 0x1161d032d in IPC::TupleDecoder&lt;2ul, WTF::String, WebKit::UserData&gt;::decode(IPC::Decoder&amp;) ArgumentCoders.h:328
    #13 0x1161d024d in IPC::ArgumentCoder&lt;std::__1::tuple&lt;WTF::String, WebKit::UserData&gt;, void&gt;::decode(IPC::Decoder&amp;) ArgumentCoders.h:348
    #14 0x1161d0087 in IPC::Decoder&amp; IPC::Decoder::operator&gt;&gt;&lt;std::__1::tuple&lt;WTF::String, WebKit::UserData&gt; &gt;(WTF::Optional&lt;std::__1::tuple&lt;WTF::String, WebKit::UserData&gt; &gt;&amp;) Decoder.h:107
    #15 0x1161cfe25 in void IPC::handleMessage&lt;Messages::WebConnection::HandleMessage, WebKit::WebConnection, void (WebKit::WebConnection::*)(WTF::String const&amp;, WebKit::UserData const&amp;)&gt;(IPC::Decoder&amp;, WebKit::WebConnection*, void (WebKit::WebConnection::*)(WTF::String const&amp;, WebKit::UserData const&amp;)) HandleMessage.h:114
    #16 0x1161cfcbf in WebKit::WebConnection::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) WebConnectionMessageReceiver.cpp:41
    #17 0x114311bbf in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;) MessageReceiverMap.cpp:118
    #18 0x1152518fc in WebKit::AuxiliaryProcessProxy::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;) AuxiliaryProcessProxy.cpp:216
    #19 0x11563ee47 in WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) WebProcessProxy.cpp:808
    #20 0x113dfe8a3 in IPC::Connection::dispatchMessage(IPC::Decoder&amp;) Connection.cpp:1038
    #21 0x113e00217 in IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;) Connection.cpp:1138
    #22 0x113dfd029 in IPC::Connection::dispatchIncomingMessages() Connection.cpp:1242
    #23 0x113e1f32e in IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_8::operator()() Connection.cpp:999
    #24 0x113e1f29c in 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() Function.h:52
    #25 0x10b67674e in WTF::Function&lt;void ()&gt;::operator()() const Function.h:83
    #26 0x10b711818 in WTF::RunLoop::performWork() RunLoop.cpp:128
    #27 0x10b714b35 in WTF::RunLoop::performWork(void*) RunLoopCF.cpp:46

&lt;rdar://problem/73568927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726172</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-05 10:41:30 -0800</bug_when>
    <thetext>The bug here is in decodeNSError. The problem here is that the hasUnderlyingError support does not work properly when the userInfo dictionary is nullptr. Trivial to fix. I’d be happy to fix this but I don’t know how to make regression tests for an issue like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726174</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-05 10:42:52 -0800</bug_when>
    <thetext>I’m going to grab this and fix it, but I don’t plan to add a regression test.

Ryosuke, let me know if that’s not right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726188</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-05 10:57:39 -0800</bug_when>
    <thetext>I read the encode function more carefully and it’s clear it won’t ever encode a null, so the fix here is just to add a null check. But I also did a tiny refactor to get rid of the need to use WARN_UNUSED_RETURN.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726193</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-05 10:59:54 -0800</bug_when>
    <thetext>Since this is just a null pointer dereference, I am thinking that maybe it’s not security sensitive?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726266</commentid>
    <comment_count>5</comment_count>
      <attachid>419459</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-05 14:03:12 -0800</bug_when>
    <thetext>Created attachment 419459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726320</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-05 16:16:27 -0800</bug_when>
    <thetext>Committed r272450: &lt;https://trac.webkit.org/changeset/272450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726328</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-05 17:07:46 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Since this is just a null pointer dereference, I am thinking that maybe it’s
&gt; not security sensitive?

Doesn&apos;t seem like it. Maybe we can add a test then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726329</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-05 17:08:49 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; I’m going to grab this and fix it, but I don’t plan to add a regression test.
&gt; 
&gt; Ryosuke, let me know if that’s not right.

So if it&apos;s just a nullptr crash without any security implications, we want to add a test like any other bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726330</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-05 17:10:09 -0800</bug_when>
    <thetext>The only way to test it is the IPC fuzzing; not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726331</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-05 17:11:49 -0800</bug_when>
    <thetext>Hm... this IPC test might be a bit problematic in that it may break right away when the format of WebConnection_HandleMessage changes so maybe it&apos;s okay not to add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726332</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-05 17:12:25 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; The only way to test it is the IPC fuzzing; not sure.

FWIW, IPC fuzzing API is available in debug &amp; ASAN release builds so if we added API, we can test it but it&apos;s true that this input is probably not going to be valid in a long term.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>419350</attachid>
            <date>2021-02-04 18:07:43 -0800</date>
            <delta_ts>2021-02-04 18:07:43 -0800</delta_ts>
            <desc>Test</desc>
            <filename>73568927.html</filename>
            <type>text/html</type>
            <size>6386</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBJUENUZXN0aW5nQVBJRW5h
YmxlZD10cnVlIF0gLS0+CjxzY3JpcHQ+CgpidWYgPSBuZXcgVWludDhBcnJheShbMHgxMywweDAs
MHgwLDB4MCwweDEsMHg1MiwweDY1LDB4NjEsMHg2NCwweDY1LDB4NzIsMHg1MywweDc0LDB4NjEs
MHg3NCwweDY1LDB4NGYsMHg2MiwweDczLDB4NjUsMHg3MiwweDc2LDB4NjUsMHg3MiwweDksMHgw
LDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAs
MHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4YjAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAs
MHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCww
eDQwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHhlYSwweGZm
LDB4ZmYsMHhmZiwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4
MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgw
LDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAs
MHgxLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCww
eDAsMHgwLDB4MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4
YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4ZmQsMHhmZiwweDEsMHgwLDB4MCwweDAsMHgwLDB4MCww
eDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4
MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAsMHgw
LDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MCwweDIs
MHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCww
eDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4
MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgw
LDB4MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweGEs
MHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSww
eGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4
YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweGEsMHhh
LDB4YSwweGEsMHhhLDB4YSwweGEsMHhhLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAs
MHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCww
eDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4
MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgw
LDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAs
MHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCww
eDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4
MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhh
LDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAs
MHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCww
eDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4
MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgw
LDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MCwweGZmLDB4ZmYsMHhlZiwweDAsMHgwLDB4MCww
eDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgwLDB4
MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAsMHgw
LDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MiwweDAs
MHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4Miww
eDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4
MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgw
LDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgxNSwweDg3LDB4
NCwweDgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDMwLDB4YSwweDAsMHgwLDB4MCww
eDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4
MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgw
LDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAs
MHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSww
eDEsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4
YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgw
LDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAs
MHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCww
eDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4
MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgw
LDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAs
MHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4MCww
eDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgwLDB4
MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIsMHgw
LDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDIs
MHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCww
eDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4
MCwweDIsMHgwLDB4MCwweGEsMHg1YywweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4
MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgx
LDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAs
MHgxLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCww
eDAsMHgxLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4
MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhh
LDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAs
MHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCww
eDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4
MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MCwweDIsMHgw
LDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAs
MHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCww
eDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4
MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgw
LDB4MCwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEs
MHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCww
eDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4
MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgw
LDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAs
MHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MCww
eDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4
MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgx
LDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAs
MHgwLDB4MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSww
eDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4
MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgw
LDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAs
MHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCww
eDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4
MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgw
LDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEs
MHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4ZDEs
MHhhZiwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEs
MHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCww
eDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4
MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgw
LDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4MCwweDAsMHgwLDB4MiwweDAs
MHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAsMHgwLDB4MSwweDAsMHgwLDB4MCww
eDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHgwLDB4
MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweGEsMHgwLDB4MCwweDAsMHgx
LDB4MCwweDAsMHgwLDB4MiwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHhhLDB4MCwweDAs
MHgwLDB4MSwweDAsMHgwLDB4MCwweDIsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4YSww
eDAsMHgwLDB4MCwweDEsMHgwLDB4MCwweDAsMHgyLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4
MCwweGEsMHgwLDB4MCwweDAsMHgxLDB4NjksMHg2ZSwweDc2LDB4NmYsMHgwLDB4MCwweDAsMHgw
LDB4MywweDAsMHgwLDB4YTcsMHgwLDB4MCwweDAsMHgwLDB4YSwweDAsMHgwLDB4MCwweDEsMHg3
NCwweDc5LDB4NzAsMHg3NywweDUzLDB4NzQsMHg3MiwweDY5LDB4ZWUsMHg2NywweDAsMHgyNSww
eDgsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4
MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLDB4MCwweDAsMHgw
LDB4MCwweDAsMHgwLDB4MCwweDAsMHgwLF0pOwpJUEMuc2VuZE1lc3NhZ2UoJ1VJJywwLElQQy5t
ZXNzYWdlcy5XZWJDb25uZWN0aW9uX0hhbmRsZU1lc3NhZ2UubmFtZSxbYnVmXSk7Cgo8L3Njcmlw
dD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419459</attachid>
            <date>2021-02-05 14:03:12 -0800</date>
            <delta_ts>2021-02-05 15:28:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221441-20210205140312.patch</filename>
            <type>text/plain</type>
            <size>6787</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNjYzkzYzc1NmVmNzMzNTMw
Y2JkYjIzNjIxZTgxNWNlZGMwNjI4MTcuLmVjZGYwZDJlNDc3ZjYxMDU2YjZhOTEwZTk1OTIwZDVh
MGE0ZTZhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDItMDUgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaXNzaW5nIG51bGwgY2hlY2tz
IHRvIGRlY29kaW5nIGZ1bmN0aW9ucyBpbnZvbHZpbmcgUmV0YWluUHRyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE0NDEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0YSk6IEZhaWwgaWYgdGhlIGRpY3Rp
b25hcnkKKyAgICAgICAgaXMgbnVsbDogdGhlIGVuY29kZXIgbmV2ZXIgZW5jb2RlcyBhIG51bGwg
ZGljdGlvbmFyeS4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8+OjpkZWNvZGUpOiBGYWlsIGlmIHRoZSBTZWNUcnVzdFJlZiBpcyBudWxsOgorICAg
ICAgICB0aGUgZW5jb2RlciBuZXZlciBlbmNvZGVzIGEgbnVsbCBTZWNUcnVzdFJlZi4gRmFpbCBp
ZiB0aGUgY2VydGlmaWNhdGUgY2hhaW4gYXJyYXkgaXMgbnVsbDoKKyAgICAgICAgdGhlIGVuY29k
ZXIgbmV2ZXIgZW5jb2RlcyBhIG51bGwgQ0ZBcnJheVJlZi4KKyAgICAgICAgKElQQzo6ZGVjb2Rl
TlNFcnJvcik6IFJldHVybiBhIFJldGFpblB0ciBpbnN0ZWFkIG9mIHVzaW5nIGEgYm9vbCByZXR1
cm4gdmFsdWUgYW5kIGEKKyAgICAgICAgUmV0YWluUHRyIG91dCBhcmd1bWVudC4gRmFpbCBpZiB0
aGUgdXNlciBpbmZvIGRpY3Rpb25hcnkgaXMgbnVsbDogdGhlIGVuY29kZXIgbmV2ZXIgZW5jb2Rl
cworICAgICAgICBhIG51bGwgdXNlciBpbmZvIGRpY3Rpb25hcnkuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YSk6
IFVwZGF0ZWQgZm9yIHRoZSBjaGFuZ2UKKyAgICAgICAgdG8gdGhlIGludGVyZmFjZSBvZiBkZWNv
ZGVOU0Vycm9yLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcj46OmRlY29kZSk6IEZhaWwgaWYgdGhlIENGRGF0YVJlZgorICAg
ICAgICBpcyBudWxsOiB0aGUgZW5jb2RlciBuZXZlciBlbmNvZGVzIGEgbnVsbCBDRkRhdGFSZWYu
CisKIDIwMjEtMDItMDUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBhY2Nlc3MgdG8gSU9Nb2JpbGVGcmFtZWJ1ZmZlclVzZXJDbGllbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCmluZGV4IGI1MjhiOWE3OWQzNWFjM2NmZTUxZWVjMzliYTdlMGM2NzVlZWM5ZDIuLmY1MmVh
YmYxZDI1YWY4NjMyZDY2N2JiZWNlM2NlODUwZjA5MWE5YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ29tcGFueSAxMDAgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDUsNyArNDUsNiBAQAog
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW1wb3J0IDxXZWJDb3JlL01l
ZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KLQog
I2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAjZW5kaWYKIApAQCAt
MTg4LDcgKzE4Nyw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiBjcmVhdGVOU1VS
TFJlcXVlc3RGcm9tU2VyaWFsaXphYmxlUmVwcmVzZW50YXRpb24oCiAgICAgCiAgICAgcmV0dXJu
IGFkb3B0TlMoW1tOU1VSTFJlcXVlc3QgYWxsb2NdIF9pbml0V2l0aENGVVJMUmVxdWVzdDpjZlJl
cXVlc3QuZ2V0KCldKTsKIH0KLSAgICAKKwogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKICAgICBSZXRh
aW5QdHI8TlNVUkxSZXF1ZXN0PiByZXF1ZXN0VG9TZXJpYWxpemUgPSByZXNvdXJjZVJlcXVlc3Qu
bnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhU
VFBCb2R5KTsKQEAgLTIyOCwxMCArMjI3LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGUKICAg
ICB9CiAKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBkaWN0aW9uYXJ5OwotICAgIGlm
ICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZGljdGlvbmFyeSkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGlmICghZGljdGlvbmFyeSkKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIs
IGRpY3Rpb25hcnkpIHx8ICFkaWN0aW9uYXJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBhdXRvIG5zVVJMUmVxdWVzdCA9IGNyZWF0ZU5TVVJMUmVxdWVzdEZyb21TZXJpYWxpemFibGVS
ZXByZXNlbnRhdGlvbihkaWN0aW9uYXJ5LmdldCgpLCBJUEM6OnRva2VuTnVsbHB0clR5cGVSZWYo
KSk7CkBAIC0yOTIsNyArMjg4LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjoKICNpZiBIQVZF
KFNFQ19UUlVTVF9TRVJJQUxJWkFUSU9OKQogICAgIGNhc2UgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvOjpUeXBlOjpUcnVzdDogewogICAgICAgICBSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+IHRydXN0
OwotICAgICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHRydXN0KSkKKyAgICAgICAgaWYg
KCFJUEM6OmRlY29kZShkZWNvZGVyLCB0cnVzdCkgfHwgIXRydXN0KQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgICAgIGNlcnRpZmljYXRlSW5mbyA9IFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyhXVEZNb3ZlKHRydXN0KSk7CkBAIC0zMDEsNyArMjk3LDcgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBXZWJDb3JlOjoKICNlbmRpZgogICAgIGNhc2UgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvOjpU
eXBlOjpDZXJ0aWZpY2F0ZUNoYWluOiB7CiAgICAgICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBj
ZXJ0aWZpY2F0ZUNoYWluOwotICAgICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGNlcnRp
ZmljYXRlQ2hhaW4pKQorICAgICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGNlcnRpZmlj
YXRlQ2hhaW4pIHx8ICFjZXJ0aWZpY2F0ZUNoYWluKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIGNlcnRpZmljYXRlSW5mbyA9IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyhX
VEZNb3ZlKGNlcnRpZmljYXRlQ2hhaW4pKTsKQEAgLTM5Nyw0MiArMzkzLDQxIEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVu
Y29kZXImIGVuY29kZXIsCiAgICAgZW5jb2RlTlNFcnJvcihlbmNvZGVyLCByZXNvdXJjZUVycm9y
Lm5zRXJyb3IoKSk7CiB9CiAKLXN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVO
U0Vycm9yKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0Vycm9yPiYgbnNFcnJvcikKK3N0
YXRpYyBSZXRhaW5QdHI8TlNFcnJvcj4gZGVjb2RlTlNFcnJvcihEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIFN0cmluZyBkb21haW47CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkb21haW4pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBpbnQ2NF90
IGNvZGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb2RlKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJl
Zj4gdXNlckluZm87Ci0gICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCB1c2VySW5mbykpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHVzZXJJ
bmZvKSB8fCAhdXNlckluZm8pCisgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBib29sIGhhc1Vu
ZGVybHlpbmdFcnJvciA9IGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzVW5kZXJs
eWluZ0Vycm9yKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbmlsOwog
CiAgICAgaWYgKGhhc1VuZGVybHlpbmdFcnJvcikgewotICAgICAgICBSZXRhaW5QdHI8TlNFcnJv
cj4gdW5kZXJseWluZ05TRXJyb3I7Ci0gICAgICAgIGlmICghZGVjb2RlTlNFcnJvcihkZWNvZGVy
LCB1bmRlcmx5aW5nTlNFcnJvcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGF1dG8gdW5kZXJseWluZ05TRXJyb3IgPSBkZWNvZGVOU0Vycm9yKGRlY29kZXIpOworICAgICAg
ICBpZiAoIXVuZGVybHlpbmdOU0Vycm9yKQorICAgICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAg
ICAgICBhdXRvIG11dGFibGVVc2VySW5mbyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0
YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZEaWN0aW9uYXJ5R2V0Q291bnQodXNlcklu
Zm8uZ2V0KCkpICsgMSwgdXNlckluZm8uZ2V0KCkpKTsKICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0
VmFsdWUobXV0YWJsZVVzZXJJbmZvLmdldCgpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpTlNVbmRl
cmx5aW5nRXJyb3JLZXksIChfX2JyaWRnZSBDRlR5cGVSZWYpdW5kZXJseWluZ05TRXJyb3IuZ2V0
KCkpOwogICAgICAgICB1c2VySW5mbyA9IFdURk1vdmUobXV0YWJsZVVzZXJJbmZvKTsKICAgICB9
CiAKLSAgICBuc0Vycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWlu
OmRvbWFpbiBjb2RlOmNvZGUgdXNlckluZm86KF9fYnJpZGdlIE5TRGljdGlvbmFyeSAqKXVzZXJJ
bmZvLmdldCgpXSk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0Vy
cm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpkb21haW4gY29kZTpjb2RlIHVzZXJJbmZvOihfX2Jy
aWRnZSBOU0RpY3Rpb25hcnkgKil1c2VySW5mby5nZXQoKV0pOwogfQogCiBib29sIEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVy
JiBkZWNvZGVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewotICAg
IFJldGFpblB0cjxOU0Vycm9yPiBuc0Vycm9yOwotICAgIGlmICghZGVjb2RlTlNFcnJvcihkZWNv
ZGVyLCBuc0Vycm9yKSkKKyAgICBhdXRvIG5zRXJyb3IgPSBkZWNvZGVOU0Vycm9yKGRlY29kZXIp
OworICAgIGlmICghbnNFcnJvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmVzb3Vy
Y2VFcnJvciA9IFdlYkNvcmU6OlJlc291cmNlRXJyb3IobnNFcnJvci5nZXQoKSk7CkBAIC02MDAs
NyArNTk1LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJs
b2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGUKIGJvb2wgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiBjb250ZW50RmlsdGVy
VW5ibG9ja0hhbmRsZXIpCiB7CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKLSAgICBp
ZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGRhdGEpKQorICAgIGlmICghSVBDOjpkZWNvZGUoZGVj
b2RlciwgZGF0YSkgfHwgIWRhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8g
dW5hcmNoaXZlciA9IGFkb3B0TlMoW1tOU0tleWVkVW5hcmNoaXZlciBhbGxvY10gaW5pdEZvclJl
YWRpbmdGcm9tRGF0YTooX19icmlkZ2UgTlNEYXRhICopZGF0YS5nZXQoKSBlcnJvcjpudWxscHRy
XSk7Cg==
</data>
<flag name="review"
          id="437686"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>