<?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>223821</bug_id>
          
          <creation_ts>2021-03-26 15:29:35 -0700</creation_ts>
          <short_desc>UBSan: runtime error: load of value &lt;unknown&gt;, which is not a valid value for type &apos;const WebCore::RealtimeMediaSourceCapabilities::EchoCancellation&apos;</short_desc>
          <delta_ts>2021-04-01 19:50:02 -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>WebRTC</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=176131</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>
          
          <blocked>224090</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744351</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-26 15:29:35 -0700</bug_when>
    <thetext>Fix runtime issues found by UBSan running layout tests:

Source/WebKit/Platform/IPC/Encoder.h:68:93: runtime error: load of value &lt;unknown&gt;, which is not a valid value for type &apos;const WebCore::RealtimeMediaSourceCapabilities::EchoCancellation&apos;

Found in the following tests:

LayoutTests/fast/mediastream/MediaDevices-addEventListener.html
LayoutTests/fast/mediastream/constraint-intrinsic-size.html
LayoutTests/http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute.html
LayoutTests/http/tests/media/media-stream/get-display-media-iframe-allow-attribute.html
LayoutTests/imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-bitrate.https.html
LayoutTests/webrtc/addICECandidate-closed.html
LayoutTests/webrtc/ice-candidate-sdpMLineIndex.html
LayoutTests/webrtc/libwebrtc/descriptionGetters.html
LayoutTests/webrtc/peerconnection-page-cache.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744358</commentid>
    <comment_count>1</comment_count>
      <attachid>424410</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-26 15:48:56 -0700</bug_when>
    <thetext>Created attachment 424410
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744405</commentid>
    <comment_count>2</comment_count>
      <attachid>424410</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-26 17:27:54 -0700</bug_when>
    <thetext>Comment on attachment 424410
Patch v1

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

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:110
&gt; +    ValueUnion m_minOrValue { 0 };
&gt; +    ValueUnion m_max { 0 };

In cases like this, I am pretty sure we can use just &quot;{ }&quot; instead of &quot;{ 0 }&quot; if we prefer. Has the same effect.

But also I am not sure this makes logical sense. The double is still uninitialized, so what’s the value to just initializing the int here?

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:111
&gt; +    Type m_type { Undefined };

Could do the same here, but here I think there is more value in writing out Undefined, so I am not recommending it.

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:209
&gt; +    EchoCancellation m_echoCancellation { EchoCancellation::ReadOnly };

Same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744534</commentid>
    <comment_count>3</comment_count>
      <attachid>424410</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-27 12:59:46 -0700</bug_when>
    <thetext>Comment on attachment 424410
Patch v1

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

&gt;&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:110
&gt;&gt; +    ValueUnion m_max { 0 };
&gt; 
&gt; In cases like this, I am pretty sure we can use just &quot;{ }&quot; instead of &quot;{ 0 }&quot; if we prefer. Has the same effect.
&gt; 
&gt; But also I am not sure this makes logical sense. The double is still uninitialized, so what’s the value to just initializing the int here?

Verified that &quot;{ }&quot; is the same as &quot;{ 0 }&quot; for ValueUnion.  Will change.

Only the first non-static union member can be initialized with C++ member initializer syntax, so I swapped asInt and asDouble in ValueUnion to clear all memory since the double is 8 bytes and the int is 4 bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744535</commentid>
    <comment_count>4</comment_count>
      <attachid>424463</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-27 13:01:59 -0700</bug_when>
    <thetext>Created attachment 424463
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744559</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-27 16:26:51 -0700</bug_when>
    <thetext>Committed r275142: &lt;https://commits.webkit.org/r275142&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424463.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744560</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-27 16:27:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/75924950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744799</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-29 11:26:32 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #3)
&gt; Only the first non-static union member can be initialized with C++ member
&gt; initializer syntax, so I swapped asInt and asDouble in ValueUnion to clear
&gt; all memory since the double is 8 bytes and the int is 4 bytes.

That works from a practical point of view, but not great from an &quot;undefined behavior&quot; point of view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744856</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-29 13:18:46 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #3)
&gt; &gt; Only the first non-static union member can be initialized with C++ member
&gt; &gt; initializer syntax, so I swapped asInt and asDouble in ValueUnion to clear
&gt; &gt; all memory since the double is 8 bytes and the int is 4 bytes.
&gt; 
&gt; That works from a practical point of view, but not great from an &quot;undefined
&gt; behavior&quot; point of view.

Can you give an example of a &quot;undefined behavior&quot; point of view that you&apos;re thinking of?

In this specific case, setting the double value to 0 will clear all the memory that could be used by the members of this particular union.

Or do you mean this in the more general sense of &quot;clearing all memory used by a union used as a C++ member variable&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744884</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-29 13:37:07 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #8)
&gt; In this specific case, setting the double value to 0 will clear all the
&gt; memory that could be used by the members of this particular union.

That’s not specified by the standard. Setting the double value to 0 does not guarantee anything about the int value.

That’s the problem with &quot;undefined behavior sanitizer&quot;; where do you draw the line?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744914</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-29 14:24:32 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #8)
&gt; &gt; In this specific case, setting the double value to 0 will clear all the
&gt; &gt; memory that could be used by the members of this particular union.
&gt; 
&gt; That’s not specified by the standard. Setting the double value to 0 does not
&gt; guarantee anything about the int value.

I see.

&gt; That’s the problem with &quot;undefined behavior sanitizer&quot;; where do you draw
&gt; the line?

UBSan only flagged the m_echoCancellation member variable.  It did not flag the ValueUnion fields.  I noticed them via source code inspection.  Sorry if this wasn&apos;t clear in my original patch.

Maybe a better solution to using unions is to use WTF::Variant instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744922</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-29 14:43:22 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #10)
&gt; (In reply to Darin Adler from comment #9)
&gt; &gt; That’s the problem with &quot;undefined behavior sanitizer&quot;; where do you draw
&gt; &gt; the line?
&gt; 
&gt; UBSan only flagged the m_echoCancellation member variable.  It did not flag
&gt; the ValueUnion fields.  I noticed them via source code inspection.  Sorry if
&gt; this wasn&apos;t clear in my original patch.
&gt; 
&gt; Maybe a better solution to using unions is to use WTF::Variant instead.

Okay, looking at the CapabilityValueOrRange() constructors again:

- All of them set m_minOrValue (either int or double).
- Three do not set m_max.
- All of them set m_type.

Is it better to remove the default member initializers and do everything explicitly in the constructors, or let the constructors override the values and use the default member initializers as a fallback?

For example, if we leave the default member initializers, we can change this:

    CapabilityValueOrRange()
        : m_type(Undefined)
    {
    }

To this:

    CapabilityValueOrRange() = default;

Hmmm...since both m_minOrValue and m_max should be the same time, perhaps it&apos;s better to initialize everything in the constructors in this case.  I&apos;ll file a new bug for that.  And maybe look to see how much work switching to WTF::Variant is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744925</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-29 14:44:14 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #11)
&gt; Hmmm...since both m_minOrValue and m_max should be the same time, [...]

time =&gt; type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744951</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-29 15:09:18 -0700</bug_when>
    <thetext>I’m not sure what problem we are solving. The idea of initializing in constructors instead of in the header sounds good here. The idea of using Variant instead of union can be good too, as long as it doesn’t hurt performance or anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744994</commentid>
    <comment_count>14</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-03-29 17:26:29 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #13)
&gt; I’m not sure what problem we are solving.

I was trying to determine how to address your follow-up comments.  So there is no specific action that is required?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745001</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-29 18:02:44 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #14)
&gt; I was trying to determine how to address your follow-up comments.  So there
&gt; is no specific action that is required?

My comments assumed that you were initializing these fields because of UBSan.

If you’re just initializing them to make our code more foolproof without any connection to &quot;undefined behavior&quot;, then what you have in the patch is OK with me. Not *great*, because it seems super likely that some day someone will re-order the union since we don’t have a comment explaining why we put double first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746370</commentid>
    <comment_count>16</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-04-01 19:50:02 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #15)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #14)
&gt; &gt; I was trying to determine how to address your follow-up comments.  So there
&gt; &gt; is no specific action that is required?
&gt; 
&gt; My comments assumed that you were initializing these fields because of UBSan.
&gt; 
&gt; If you’re just initializing them to make our code more foolproof without any
&gt; connection to &quot;undefined behavior&quot;, then what you have in the patch is OK
&gt; with me. Not *great*, because it seems super likely that some day someone
&gt; will re-order the union since we don’t have a comment explaining why we put
&gt; double first.

Tracking follow-up fixes here:

Bug 224090: [CoreIPC] Encoding/decoding of WebCore::CapabilityValueOrRange transmits padding bytes</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424410</attachid>
            <date>2021-03-26 15:48:56 -0700</date>
            <delta_ts>2021-03-26 20:39:36 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-223821-20210326154855.patch</filename>
            <type>text/plain</type>
            <size>3250</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4NjM0Nzg5NzBlYmEx
OGI4NWMyNTg0MWNhYmIxM2Q3YWQ1ZDU1ZC4uMjhmZjdkMDU3ZmY4OWE0NzdiNGNhYTY1MWE3MmYw
OTU4NThlMWVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTI2ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgVUJTYW46IHJ1bnRpbWUg
ZXJyb3I6IGxvYWQgb2YgdmFsdWUgPHVua25vd24+LCB3aGljaCBpcyBub3QgYSB2YWxpZCB2YWx1
ZSBmb3IgdHlwZSAnY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
czo6RWNob0NhbmNlbGxhdGlvbicKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyMzgy
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
czogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtYWRkRXZlbnRMaXN0ZW5lci5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL2NvbnN0cmFpbnQtaW50cmluc2ljLXNpemUu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVy
YXRlLWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRpYS1pZnJhbWUtYWxs
b3ctYXR0cmlidXRlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLWJpdHJhdGUuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgd2VicnRjL2FkZElDRUNhbmRpZGF0ZS1jbG9zZWQuaHRtbAor
ICAgICAgICAgICAgICAgd2VicnRjL2ljZS1jYW5kaWRhdGUtc2RwTUxpbmVJbmRleC5odG1sCisg
ICAgICAgICAgICAgICB3ZWJydGMvbGlid2VicnRjL2Rlc2NyaXB0aW9uR2V0dGVycy5odG1sCisg
ICAgICAgICAgICAgICB3ZWJydGMvcGVlcmNvbm5lY3Rpb24tcGFnZS1jYWNoZS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXBhYmlsaXR5VmFsdWVPclJhbmdlOjptX21pbk9y
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6bV9tYXgp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6bV90eXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6Om1fZWNob0Nh
bmNlbGxhdGlvbik6CisgICAgICAgIC0gUHJvdmlkZSBkZWZhdWx0IGluaXRpYWxpemVyIHZhbHVl
cy4gU2V0dGluZyBhIGRlZmF1bHQgdmFsdWUKKyAgICAgICAgICBmb3IgbV9lY2hvQ2FuY2VsbGF0
aW9uIGZpeGVzIHRoZSBidWcuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAtIERyaXZlLWJ5IGNsZWFuLXVw
IG9mIGVuY29kZXIgc3RhdGVtZW50LgorCiAyMDIxLTAzLTIzICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRnVuY3RvciBmb3IgV2Vha0dDTWFwOjpl
bnN1cmVWYWx1ZSBtdXN0IG5vdCBpbnZva2UgR0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMuaAppbmRleCBhNTY0YjQwNDdlMDI1NzBiOWJhZTMyNTZmODYzMzkwZWU2YmIx
OWRjLi4yMjQ3NGNkN2IxODU3YTE3Nzc2NmFmZTMxNjcxM2JhZDA3M2YxNjg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCkBAIC0xMDYsOSArMTA2LDkgQEAgcHVi
bGljOgogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmKTsKIAogcHJp
dmF0ZToKLSAgICBWYWx1ZVVuaW9uIG1fbWluT3JWYWx1ZTsKLSAgICBWYWx1ZVVuaW9uIG1fbWF4
OwotICAgIFR5cGUgbV90eXBlOworICAgIFZhbHVlVW5pb24gbV9taW5PclZhbHVlIHsgMCB9Owor
ICAgIFZhbHVlVW5pb24gbV9tYXggeyAwIH07CisgICAgVHlwZSBtX3R5cGUgeyBVbmRlZmluZWQg
fTsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CkBAIC0yMDYsNyArMjA2LDcgQEAgcHJp
dmF0ZToKICAgICBDYXBhYmlsaXR5VmFsdWVPclJhbmdlIG1fdm9sdW1lOwogICAgIENhcGFiaWxp
dHlWYWx1ZU9yUmFuZ2UgbV9zYW1wbGVSYXRlOwogICAgIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2Ug
bV9zYW1wbGVTaXplOwotICAgIEVjaG9DYW5jZWxsYXRpb24gbV9lY2hvQ2FuY2VsbGF0aW9uOwor
ICAgIEVjaG9DYW5jZWxsYXRpb24gbV9lY2hvQ2FuY2VsbGF0aW9uIHsgRWNob0NhbmNlbGxhdGlv
bjo6UmVhZE9ubHkgfTsKICAgICBBdG9tU3RyaW5nIG1fZGV2aWNlSWQ7CiAgICAgQXRvbVN0cmlu
ZyBtX2dyb3VwSWQ7CiAKQEAgLTIyNiw4ICsyMjYsOCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICA8
PCBtX3NhbXBsZVNpemUKICAgICAgICAgPDwgbV9kZXZpY2VJZAogICAgICAgICA8PCBtX2dyb3Vw
SWQKLSAgICAgICAgPDwgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBlbmNvZGVyIDw8IG1f
ZWNob0NhbmNlbGxhdGlvbjsKKyAgICAgICAgPDwgbV9zdXBwb3J0ZWRDb25zdHJhaW50cworICAg
ICAgICA8PCBtX2VjaG9DYW5jZWxsYXRpb247CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
Cg==
</data>
<flag name="review"
          id="444067"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="444105"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424463</attachid>
            <date>2021-03-27 13:01:59 -0700</date>
            <delta_ts>2021-03-27 16:26:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223821-20210327130158.patch</filename>
            <type>text/plain</type>
            <size>3621</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY1MjI4Yzk0YzVlYWI2
YTU0NGY0MjIzMmE3NGY1N2RlMDRmNDBlNC4uNDA4ZjM1Yjc2ODZiYjhmMDJiYmFhMmE2NWJmOGEy
YTE2ZWYzOTcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAzLTI3ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgVUJTYW46IHJ1bnRpbWUg
ZXJyb3I6IGxvYWQgb2YgdmFsdWUgPHVua25vd24+LCB3aGljaCBpcyBub3QgYSB2YWxpZCB2YWx1
ZSBmb3IgdHlwZSAnY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
czo6RWNob0NhbmNlbGxhdGlvbicKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyMzgy
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBUZXN0czog
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtYWRkRXZlbnRMaXN0ZW5lci5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL2NvbnN0cmFpbnQtaW50cmluc2ljLXNpemUuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRl
LWRldmljZXMtaWZyYW1lLWFsbG93LWF0dHJpYnV0ZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRpYS1pZnJhbWUtYWxsb3ct
YXR0cmlidXRlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLWJpdHJhdGUuaHR0cHMuaHRt
bAorICAgICAgICAgICAgICAgd2VicnRjL2FkZElDRUNhbmRpZGF0ZS1jbG9zZWQuaHRtbAorICAg
ICAgICAgICAgICAgd2VicnRjL2ljZS1jYW5kaWRhdGUtc2RwTUxpbmVJbmRleC5odG1sCisgICAg
ICAgICAgICAgICB3ZWJydGMvbGlid2VicnRjL2Rlc2NyaXB0aW9uR2V0dGVycy5odG1sCisgICAg
ICAgICAgICAgICB3ZWJydGMvcGVlcmNvbm5lY3Rpb24tcGFnZS1jYWNoZS5odG1sCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYXBhYmlsaXR5VmFsdWVPclJhbmdlOjp1bmlvbiBWYWx1
ZVVuaW9uKToKKyAgICAgICAgLSBNYWtlIGFzRG91YmxlIHRoZSBmaXJzdCB1bmlvbiBtZW1iZXIg
c28gQysrIG1lbWJlcgorICAgICAgICAgIGluaXRpYWxpemVycyBzZXQgYWxsIG1lbW9yeS4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhcGFiaWxpdHlWYWx1ZU9yUmFuZ2U6Om1fbWluT3JWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYXBhYmlsaXR5VmFsdWVPclJhbmdlOjptX21heCk6CisgICAgICAg
IChXZWJDb3JlOjpDYXBhYmlsaXR5VmFsdWVPclJhbmdlOjptX3R5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6bV9lY2hvQ2FuY2VsbGF0aW9u
KToKKyAgICAgICAgLSBQcm92aWRlIG1lbWJlciBpbml0aWFsaXplcnMuIFNldHRpbmcgYSBkZWZh
dWx0IHZhbHVlIGZvcgorICAgICAgICAgIG1fZWNob0NhbmNlbGxhdGlvbiBmaXhlcyB0aGUgYnVn
LgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgLSBEcml2ZS1ieSBjbGVhbi11cCBvZiBlbmNvZGVyIHN0YXRl
bWVudC4KKwogMjAyMS0wMy0yNyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxl
LmNvbT4KIAogICAgICAgICBQQ006IFNlbmQgcmVwb3J0IHRvIGJvdGggY2xpY2sgc291cmNlIGFu
ZCBhdHRyaWJ1dGlvbiBkZXN0aW5hdGlvbiB3ZWJzaXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzLmgKaW5kZXggYTU2NGI0MDQ3ZTAyNTcwYjliYWUzMjU2Zjg2MzM5MGVl
NmJiMTlkYy4uMjQwZmQ0OTY3MmJjZTgzNjdlYTcyMjlhNTZkN2E0ZTdjOGVmNmJhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaApAQCAtNDksOCArNDksOCBAQCBw
dWJsaWM6CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKICAgICB1
bmlvbiBWYWx1ZVVuaW9uIHsKLSAgICAgICAgaW50IGFzSW50OwogICAgICAgICBkb3VibGUgYXNE
b3VibGU7CisgICAgICAgIGludCBhc0ludDsKICAgICB9OwogCiAgICAgQ2FwYWJpbGl0eVZhbHVl
T3JSYW5nZSgpCkBAIC0xMDYsOSArMTA2LDkgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmKTsKIAogcHJpdmF0ZToKLSAgICBWYWx1ZVVuaW9uIG1f
bWluT3JWYWx1ZTsKLSAgICBWYWx1ZVVuaW9uIG1fbWF4OwotICAgIFR5cGUgbV90eXBlOworICAg
IFZhbHVlVW5pb24gbV9taW5PclZhbHVlIHsgfTsKKyAgICBWYWx1ZVVuaW9uIG1fbWF4IHsgfTsK
KyAgICBUeXBlIG1fdHlwZSB7IFVuZGVmaW5lZCB9OwogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KQEAgLTIwNiw3ICsyMDYsNyBAQCBwcml2YXRlOgogICAgIENhcGFiaWxpdHlWYWx1ZU9y
UmFuZ2UgbV92b2x1bWU7CiAgICAgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSBtX3NhbXBsZVJhdGU7
CiAgICAgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSBtX3NhbXBsZVNpemU7Ci0gICAgRWNob0NhbmNl
bGxhdGlvbiBtX2VjaG9DYW5jZWxsYXRpb247CisgICAgRWNob0NhbmNlbGxhdGlvbiBtX2VjaG9D
YW5jZWxsYXRpb24geyBFY2hvQ2FuY2VsbGF0aW9uOjpSZWFkT25seSB9OwogICAgIEF0b21TdHJp
bmcgbV9kZXZpY2VJZDsKICAgICBBdG9tU3RyaW5nIG1fZ3JvdXBJZDsKIApAQCAtMjI2LDggKzIy
Niw4IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIDw8IG1fc2FtcGxlU2l6ZQogICAgICAgICA8PCBt
X2RldmljZUlkCiAgICAgICAgIDw8IG1fZ3JvdXBJZAotICAgICAgICA8PCBtX3N1cHBvcnRlZENv
bnN0cmFpbnRzOwotICAgIGVuY29kZXIgPDwgbV9lY2hvQ2FuY2VsbGF0aW9uOworICAgICAgICA8
PCBtX3N1cHBvcnRlZENvbnN0cmFpbnRzCisgICAgICAgIDw8IG1fZWNob0NhbmNlbGxhdGlvbjsK
IH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>