<?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>235284</bug_id>
          
          <creation_ts>2022-01-16 14:33:20 -0800</creation_ts>
          <short_desc>REGRESSION (r249823): gl::Context::onProgramLink() leaks gl::Framebuffer object due early return when an error occurs in ANGLE_TRY() macro</short_desc>
          <delta_ts>2022-04-05 12:24: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>ANGLE</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.chromium.org/p/angleproject/issues/detail?id=6920</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>
          <dependson>201156</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1831348</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-16 14:33:20 -0800</bug_when>
    <thetext>gl::Context::onProgramLink() leaks gl::Framebuffer object due early return when an error occurs in ANGLE_TRY() macro.

The ANGLE_TRY() after `newDefaultFramebuffer` is set can return early, thus leaking the gl::Framebuffer object objects created in the previous if/else blocks:

    if (drawSurface != nullptr)
    {
        ANGLE_TRY(drawSurface-&gt;makeCurrent(this));
        newDefaultFramebuffer = drawSurface-&gt;createDefaultFramebuffer(this, readSurface);
    }
    else
    {
        newDefaultFramebuffer = new Framebuffer(this, mImplementation.get(), readSurface);
    }
    ASSERT(newDefaultFramebuffer);

    if (readSurface &amp;&amp; (drawSurface != readSurface))
    {
        ANGLE_TRY(readSurface-&gt;makeCurrent(this));  // Leak of gl::Framebuffer on early return.
    }

Found by clang static analyzer.

Regressed with this commit:

    Update ANGLE
    &lt;https://bugs.webkit.org/show_bug.cgi?id=201156&gt;
    &lt;rdar://problem/55288132&gt;
    &lt;https://commits.webkit.org/r249823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831349</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-16 14:34:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/87656747&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831350</commentid>
    <comment_count>2</comment_count>
      <attachid>449290</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-16 14:39:24 -0800</bug_when>
    <thetext>Created attachment 449290
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831351</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-01-16 14:40:26 -0800</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831358</commentid>
    <comment_count>4</comment_count>
      <attachid>449290</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-16 16:12:16 -0800</bug_when>
    <thetext>Comment on attachment 449290
Patch v1

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

&gt; Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp:9110
&gt; +        newDefaultFramebuffer = std::unique_ptr&lt;gl::Framebuffer&gt;(drawSurface-&gt;createDefaultFramebuffer(this, readSurface));

Can createDefaultFramebuffer be changed to return a std::unique_buffer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831359</commentid>
    <comment_count>5</comment_count>
      <attachid>449290</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-16 16:12:28 -0800</bug_when>
    <thetext>Comment on attachment 449290
Patch v1

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

&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp:9110
&gt;&gt; +        newDefaultFramebuffer = std::unique_ptr&lt;gl::Framebuffer&gt;(drawSurface-&gt;createDefaultFramebuffer(this, readSurface));
&gt; 
&gt; Can createDefaultFramebuffer be changed to return a std::unique_buffer?

unique_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831360</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-16 16:13:21 -0800</bug_when>
    <thetext>Not sure this should be related to bug 235282 about ARC, since ARC doesn’t help us with C++ new/delete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831525</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-17 10:20:35 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Not sure this should be related to bug 235282 about ARC, since ARC doesn’t
&gt; help us with C++ new/delete.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831529</commentid>
    <comment_count>8</comment_count>
      <attachid>449290</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-17 10:44:29 -0800</bug_when>
    <thetext>Comment on attachment 449290
Patch v1

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

&gt;&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp:9110
&gt;&gt;&gt; +        newDefaultFramebuffer = std::unique_ptr&lt;gl::Framebuffer&gt;(drawSurface-&gt;createDefaultFramebuffer(this, readSurface));
&gt;&gt; 
&gt;&gt; Can createDefaultFramebuffer be changed to return a std::unique_buffer?
&gt; 
&gt; unique_ptr

It&apos;s possible to change, but it would be a non-trivial patch since it&apos;s used in so many places.  At least the function doesn&apos;t seem to be API, though.

$ nm libANGLE-shared.dylib | grep createDefaultFramebuffer | c++filt
00000000002305d2 t rx::SurfaceMtl::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
000000000029e24c t rx::WindowSurfaceCGL::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
0000000000231a2a t rx::WindowSurfaceMtl::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
000000000018ed0c t rx::PbufferSurfaceCGL::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
000000000013bb1c t rx::IOSurfaceSurfaceCGL::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)

At minimum, this should be done in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831531</commentid>
    <comment_count>9</comment_count>
      <attachid>449290</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-17 10:48:41 -0800</bug_when>
    <thetext>Comment on attachment 449290
Patch v1

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

&gt;&gt;&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp:9110
&gt;&gt;&gt;&gt; +        newDefaultFramebuffer = std::unique_ptr&lt;gl::Framebuffer&gt;(drawSurface-&gt;createDefaultFramebuffer(this, readSurface));
&gt;&gt;&gt; 
&gt;&gt;&gt; Can createDefaultFramebuffer be changed to return a std::unique_buffer?
&gt;&gt; 
&gt;&gt; unique_ptr
&gt; 
&gt; It&apos;s possible to change, but it would be a non-trivial patch since it&apos;s used in so many places.  At least the function doesn&apos;t seem to be API, though.
&gt; 
&gt; $ nm libANGLE-shared.dylib | grep createDefaultFramebuffer | c++filt
&gt; 00000000002305d2 t rx::SurfaceMtl::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
&gt; 000000000029e24c t rx::WindowSurfaceCGL::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
&gt; 0000000000231a2a t rx::WindowSurfaceMtl::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
&gt; 000000000018ed0c t rx::PbufferSurfaceCGL::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
&gt; 000000000013bb1c t rx::IOSurfaceSurfaceCGL::createDefaultFramebuffer(gl::Context const*, gl::FramebufferState const&amp;)
&gt; 
&gt; At minimum, this should be done in a separate patch.

On second look, it seems like egl::Surface isn&apos;t tied to the interface of the other methods, so it may be possible to fix this.  Will investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831537</commentid>
    <comment_count>10</comment_count>
      <attachid>449342</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-17 11:32:21 -0800</bug_when>
    <thetext>Created attachment 449342
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831540</commentid>
    <comment_count>11</comment_count>
      <attachid>449342</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-17 11:36:59 -0800</bug_when>
    <thetext>Comment on attachment 449342
Patch for landing

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

&gt; Source/ThirdParty/ANGLE/src/libANGLE/Surface.h:-218
&gt; -    gl::Framebuffer *createDefaultFramebuffer(const Display *display);

BTW, this method was not implemented (or used), so I removed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831545</commentid>
    <comment_count>12</comment_count>
      <attachid>449342</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-17 12:04:46 -0800</bug_when>
    <thetext>Comment on attachment 449342
Patch for landing

The removed method must be used on other platforms.  Investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831548</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-17 12:10:30 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #12)
&gt; Comment on attachment 449342 [details]
&gt; Patch for landing
&gt; 
&gt; The removed method must be used on other platforms.  Investigating.

Couldn&apos;t find any other implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831599</commentid>
    <comment_count>14</comment_count>
      <attachid>449342</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-01-17 17:26:02 -0800</bug_when>
    <thetext>Comment on attachment 449342
Patch for landing

Adding cq+ since this isn&apos;t materially different from &quot;Patch v1&quot; (Attachment #449288), and the `win` bot passed on that patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831600</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-17 17:40:14 -0800</bug_when>
    <thetext>Committed r288106 (246120@main): &lt;https://commits.webkit.org/246120@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449342.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858349</commentid>
    <comment_count>16</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-05 05:18:35 -0700</bug_when>
    <thetext>https://bugs.chromium.org/p/angleproject/issues/detail?id=6920</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449290</attachid>
            <date>2022-01-16 14:39:24 -0800</date>
            <delta_ts>2022-01-17 00:45:06 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-235284-20220116143923.patch</filename>
            <type>text/plain</type>
            <size>3278</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggY2U4ZGFkZTJjN2U4OTY4NGVhMzMzMThjZmE3YjBlOGFlYjFlZTEzYi4uZTNiMDJlNDg2M2Rj
MmQ2ZWZjYzBhYmYxMDA3MGMyZTZlOTdlZDdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAxLTE2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI0OTgyMyk6IGdsOjpDb250ZXh0Ojpv
blByb2dyYW1MaW5rKCkgbGVha3MgZ2w6OkZyYW1lYnVmZmVyIG9iamVjdCBkdWUgZWFybHkgcmV0
dXJuIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGluIEFOR0xFX1RSWSgpIG1hY3JvCisgICAgICAgIDxo
dHRwczovL3dlYmtpdC5vcmcvYi8yMzUyODQ+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzY1
Njc0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHNyYy9saWJBTkdMRS9Db250ZXh0LmNwcDoKKyAgICAgICAgKGdsOjpDb250ZXh0OjpzZXREZWZh
dWx0RnJhbWVidWZmZXIpOgorICAgICAgICAtIFVzZSBzdGQ6OnVuaXF1ZV9wdHI8PiB0byBzdG9y
ZSBnbDo6RnJhbWVidWZmZXIgc28gdGhlIG9iamVjdAorICAgICAgICAgIGlzIHJlbGVhc2VkIG9u
IGVhcmx5IHJldHVybi4KKwogMjAyMi0wMS0xNiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODY2MDMpOiByeDo6UHJvZ3JhbU10bDo6
Z2V0U3BlY2lhbGl6ZWRTaGFkZXIoKSBsZWFrcyBNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzIG9i
amVjdCBkdWUgZWFybHkgcmV0dXJuIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGluIEFOR0xFX1RSWSgp
IG1hY3JvCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
Q29udGV4dC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvQ29udGV4
dC5jcHAKaW5kZXggOWQzMWViZjJhZTljZTEwN2EyZTI2ODczZGJlOTE0Zjg5OGQxOTU0NC4uODYw
ZWQzMjZjMmJjZTliZjFmNTIwYzRhMTQ4YjVlM2E5YjU1YmQxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Db250ZXh0LmNwcApAQCAtOTA5OSw3ICs5MDk5
LDcgQEAgZWdsOjpFcnJvciBDb250ZXh0OjpzZXREZWZhdWx0RnJhbWVidWZmZXIoZWdsOjpTdXJm
YWNlICpkcmF3U3VyZmFjZSwgZWdsOjpTdXJmYWMKICAgICBBU1NFUlQobUN1cnJlbnREcmF3U3Vy
ZmFjZSA9PSBudWxscHRyKTsKICAgICBBU1NFUlQobUN1cnJlbnRSZWFkU3VyZmFjZSA9PSBudWxs
cHRyKTsKIAotICAgIEZyYW1lYnVmZmVyICpuZXdEZWZhdWx0RnJhbWVidWZmZXIgPSBudWxscHRy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxnbDo6RnJhbWVidWZmZXI+IG5ld0RlZmF1bHRGcmFtZWJ1
ZmZlcjsKIAogICAgIG1DdXJyZW50RHJhd1N1cmZhY2UgPSBkcmF3U3VyZmFjZTsKICAgICBtQ3Vy
cmVudFJlYWRTdXJmYWNlID0gcmVhZFN1cmZhY2U7CkBAIC05MTA3LDExICs5MTA3LDExIEBAIGVn
bDo6RXJyb3IgQ29udGV4dDo6c2V0RGVmYXVsdEZyYW1lYnVmZmVyKGVnbDo6U3VyZmFjZSAqZHJh
d1N1cmZhY2UsIGVnbDo6U3VyZmFjCiAgICAgaWYgKGRyYXdTdXJmYWNlICE9IG51bGxwdHIpCiAg
ICAgewogICAgICAgICBBTkdMRV9UUlkoZHJhd1N1cmZhY2UtPm1ha2VDdXJyZW50KHRoaXMpKTsK
LSAgICAgICAgbmV3RGVmYXVsdEZyYW1lYnVmZmVyID0gZHJhd1N1cmZhY2UtPmNyZWF0ZURlZmF1
bHRGcmFtZWJ1ZmZlcih0aGlzLCByZWFkU3VyZmFjZSk7CisgICAgICAgIG5ld0RlZmF1bHRGcmFt
ZWJ1ZmZlciA9IHN0ZDo6dW5pcXVlX3B0cjxnbDo6RnJhbWVidWZmZXI+KGRyYXdTdXJmYWNlLT5j
cmVhdGVEZWZhdWx0RnJhbWVidWZmZXIodGhpcywgcmVhZFN1cmZhY2UpKTsKICAgICB9CiAgICAg
ZWxzZQogICAgIHsKLSAgICAgICAgbmV3RGVmYXVsdEZyYW1lYnVmZmVyID0gbmV3IEZyYW1lYnVm
ZmVyKHRoaXMsIG1JbXBsZW1lbnRhdGlvbi5nZXQoKSwgcmVhZFN1cmZhY2UpOworICAgICAgICBu
ZXdEZWZhdWx0RnJhbWVidWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPGdsOjpGcmFtZWJ1ZmZlcj4o
dGhpcywgbUltcGxlbWVudGF0aW9uLmdldCgpLCByZWFkU3VyZmFjZSk7CiAgICAgfQogICAgIEFT
U0VSVChuZXdEZWZhdWx0RnJhbWVidWZmZXIpOwogCkBAIC05MTIyLDE0ICs5MTIyLDE0IEBAIGVn
bDo6RXJyb3IgQ29udGV4dDo6c2V0RGVmYXVsdEZyYW1lYnVmZmVyKGVnbDo6U3VyZmFjZSAqZHJh
d1N1cmZhY2UsIGVnbDo6U3VyZmFjCiAKICAgICAvLyBVcGRhdGUgZGVmYXVsdCBmcmFtZWJ1ZmZl
ciwgdGhlIGJpbmRpbmcgb2YgdGhlIHByZXZpb3VzIGRlZmF1bHQKICAgICAvLyBmcmFtZWJ1ZmZl
ciAob3IgbGFjayBvZikgd2lsbCBoYXZlIGEgbnVsbHB0ci4KLSAgICBtU3RhdGUubUZyYW1lYnVm
ZmVyTWFuYWdlci0+c2V0RGVmYXVsdEZyYW1lYnVmZmVyKG5ld0RlZmF1bHRGcmFtZWJ1ZmZlcik7
CisgICAgbVN0YXRlLm1GcmFtZWJ1ZmZlck1hbmFnZXItPnNldERlZmF1bHRGcmFtZWJ1ZmZlcihu
ZXdEZWZhdWx0RnJhbWVidWZmZXIucmVsZWFzZSgpKTsKICAgICBpZiAobVN0YXRlLmdldERyYXdG
cmFtZWJ1ZmZlcigpID09IG51bGxwdHIpCiAgICAgewotICAgICAgICBiaW5kRHJhd0ZyYW1lYnVm
ZmVyKG5ld0RlZmF1bHRGcmFtZWJ1ZmZlci0+aWQoKSk7CisgICAgICAgIGJpbmREcmF3RnJhbWVi
dWZmZXIobVN0YXRlLm1GcmFtZWJ1ZmZlck1hbmFnZXItPmdldERlZmF1bHRGcmFtZWJ1ZmZlcigp
LT5pZCgpKTsKICAgICB9CiAgICAgaWYgKG1TdGF0ZS5nZXRSZWFkRnJhbWVidWZmZXIoKSA9PSBu
dWxscHRyKQogICAgIHsKLSAgICAgICAgYmluZFJlYWRGcmFtZWJ1ZmZlcihuZXdEZWZhdWx0RnJh
bWVidWZmZXItPmlkKCkpOworICAgICAgICBiaW5kUmVhZEZyYW1lYnVmZmVyKG1TdGF0ZS5tRnJh
bWVidWZmZXJNYW5hZ2VyLT5nZXREZWZhdWx0RnJhbWVidWZmZXIoKS0+aWQoKSk7CiAgICAgfQog
CiAgICAgcmV0dXJuIGVnbDo6Tm9FcnJvcigpOwo=
</data>
<flag name="review"
          id="475336"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="475358"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449342</attachid>
            <date>2022-01-17 11:32:21 -0800</date>
            <delta_ts>2022-01-17 17:40:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-235284-20220117113220.patch</filename>
            <type>text/plain</type>
            <size>5758</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggMmRkMzhjMDNjMjI5MTRhYTk4YzM3OTVhYjE2M2ExY2MzOTQ5NTU5NS4uNmMwZTczMjkxOWFj
OTFlMWIyOGJlZjFmOGMxYmQ4MGJiNGZkYzJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI0OTgyMyk6IGdsOjpDb250ZXh0Ojpv
blByb2dyYW1MaW5rKCkgbGVha3MgZ2w6OkZyYW1lYnVmZmVyIG9iamVjdCBkdWUgZWFybHkgcmV0
dXJuIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGluIEFOR0xFX1RSWSgpIG1hY3JvCisgICAgICAgIDxo
dHRwczovL3dlYmtpdC5vcmcvYi8yMzUyODQ+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzY1
Njc0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHNy
Yy9saWJBTkdMRS9Db250ZXh0LmNwcDoKKyAgICAgICAgKGdsOjpDb250ZXh0OjpzZXREZWZhdWx0
RnJhbWVidWZmZXIpOgorICAgICAgICAtIFVzZSBzdGQ6OnVuaXF1ZV9wdHI8PiB0byBzdG9yZSBn
bDo6RnJhbWVidWZmZXIgc28gdGhlIG9iamVjdAorICAgICAgICAgIGlzIHJlbGVhc2VkIG9uIGVh
cmx5IHJldHVybi4KKyAgICAgICAgKiBzcmMvbGliQU5HTEUvU3VyZmFjZS5jcHA6CisgICAgICAg
IChlZ2w6OlN1cmZhY2U6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1ZmZlcik6CisgICAgICAgIC0gVXBk
YXRlIHRvIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Z2w6OkZyYW1lYnVmZmVyPi4KKyAgICAgICAg
KiBzcmMvbGliQU5HTEUvU3VyZmFjZS5oOgorICAgICAgICAoZWdsOjpTdXJmYWNlOjpjcmVhdGVE
ZWZhdWx0RnJhbWVidWZmZXIpOgorICAgICAgICAtIFVwZGF0ZSBkZWNsYXJhdGlvbiB0byByZXR1
cm4gc3RkOjp1bmlxdWVfcHRyPGdsOjpGcmFtZWJ1ZmZlcj4uCisgICAgICAgIChlZ2w6OlN1cmZh
Y2U6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1ZmZlcik6IERlbGV0ZS4KKyAgICAgICAgLSBSZW1vdmUg
dGhlIHNlY29uZCwgcHJvdGVjdGVkIG1ldGhvZCB0aGF0IGlzIGN1cnJlbnRseQorICAgICAgICAg
IHVuaW1wbGVtZW50ZWQuCisKIDIwMjItMDEtMTcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjg2NjAzKTogcng6OlByb2dyYW1NdGw6
OmdldFNwZWNpYWxpemVkU2hhZGVyKCkgbGVha3MgTVRMRnVuY3Rpb25Db25zdGFudFZhbHVlcyBv
YmplY3QgZHVlIGVhcmx5IHJldHVybiB3aGVuIGFuIGVycm9yIG9jY3VycyBpbiBBTkdMRV9UUlko
KSBtYWNybwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L0NvbnRleHQuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0NvbnRl
eHQuY3BwCmluZGV4IDlkMzFlYmYyYWU5Y2UxMDdhMmUyNjg3M2RiZTkxNGY4OThkMTk1NDQuLjVj
MThhY2FjOGVjMDVjNTk3MjkzMGNkOWU3NjMxMTMyMWM4YTM0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvQ29udGV4dC5jcHAKQEAgLTkwOTksNyArOTA5
OSw3IEBAIGVnbDo6RXJyb3IgQ29udGV4dDo6c2V0RGVmYXVsdEZyYW1lYnVmZmVyKGVnbDo6U3Vy
ZmFjZSAqZHJhd1N1cmZhY2UsIGVnbDo6U3VyZmFjCiAgICAgQVNTRVJUKG1DdXJyZW50RHJhd1N1
cmZhY2UgPT0gbnVsbHB0cik7CiAgICAgQVNTRVJUKG1DdXJyZW50UmVhZFN1cmZhY2UgPT0gbnVs
bHB0cik7CiAKLSAgICBGcmFtZWJ1ZmZlciAqbmV3RGVmYXVsdEZyYW1lYnVmZmVyID0gbnVsbHB0
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Z2w6OkZyYW1lYnVmZmVyPiBuZXdEZWZhdWx0RnJhbWVi
dWZmZXI7CiAKICAgICBtQ3VycmVudERyYXdTdXJmYWNlID0gZHJhd1N1cmZhY2U7CiAgICAgbUN1
cnJlbnRSZWFkU3VyZmFjZSA9IHJlYWRTdXJmYWNlOwpAQCAtOTExMSw3ICs5MTExLDcgQEAgZWds
OjpFcnJvciBDb250ZXh0OjpzZXREZWZhdWx0RnJhbWVidWZmZXIoZWdsOjpTdXJmYWNlICpkcmF3
U3VyZmFjZSwgZWdsOjpTdXJmYWMKICAgICB9CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgbmV3
RGVmYXVsdEZyYW1lYnVmZmVyID0gbmV3IEZyYW1lYnVmZmVyKHRoaXMsIG1JbXBsZW1lbnRhdGlv
bi5nZXQoKSwgcmVhZFN1cmZhY2UpOworICAgICAgICBuZXdEZWZhdWx0RnJhbWVidWZmZXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPGdsOjpGcmFtZWJ1ZmZlcj4odGhpcywgbUltcGxlbWVudGF0aW9uLmdl
dCgpLCByZWFkU3VyZmFjZSk7CiAgICAgfQogICAgIEFTU0VSVChuZXdEZWZhdWx0RnJhbWVidWZm
ZXIpOwogCkBAIC05MTIyLDE0ICs5MTIyLDE0IEBAIGVnbDo6RXJyb3IgQ29udGV4dDo6c2V0RGVm
YXVsdEZyYW1lYnVmZmVyKGVnbDo6U3VyZmFjZSAqZHJhd1N1cmZhY2UsIGVnbDo6U3VyZmFjCiAK
ICAgICAvLyBVcGRhdGUgZGVmYXVsdCBmcmFtZWJ1ZmZlciwgdGhlIGJpbmRpbmcgb2YgdGhlIHBy
ZXZpb3VzIGRlZmF1bHQKICAgICAvLyBmcmFtZWJ1ZmZlciAob3IgbGFjayBvZikgd2lsbCBoYXZl
IGEgbnVsbHB0ci4KLSAgICBtU3RhdGUubUZyYW1lYnVmZmVyTWFuYWdlci0+c2V0RGVmYXVsdEZy
YW1lYnVmZmVyKG5ld0RlZmF1bHRGcmFtZWJ1ZmZlcik7CisgICAgbVN0YXRlLm1GcmFtZWJ1ZmZl
ck1hbmFnZXItPnNldERlZmF1bHRGcmFtZWJ1ZmZlcihuZXdEZWZhdWx0RnJhbWVidWZmZXIucmVs
ZWFzZSgpKTsKICAgICBpZiAobVN0YXRlLmdldERyYXdGcmFtZWJ1ZmZlcigpID09IG51bGxwdHIp
CiAgICAgewotICAgICAgICBiaW5kRHJhd0ZyYW1lYnVmZmVyKG5ld0RlZmF1bHRGcmFtZWJ1ZmZl
ci0+aWQoKSk7CisgICAgICAgIGJpbmREcmF3RnJhbWVidWZmZXIobVN0YXRlLm1GcmFtZWJ1ZmZl
ck1hbmFnZXItPmdldERlZmF1bHRGcmFtZWJ1ZmZlcigpLT5pZCgpKTsKICAgICB9CiAgICAgaWYg
KG1TdGF0ZS5nZXRSZWFkRnJhbWVidWZmZXIoKSA9PSBudWxscHRyKQogICAgIHsKLSAgICAgICAg
YmluZFJlYWRGcmFtZWJ1ZmZlcihuZXdEZWZhdWx0RnJhbWVidWZmZXItPmlkKCkpOworICAgICAg
ICBiaW5kUmVhZEZyYW1lYnVmZmVyKG1TdGF0ZS5tRnJhbWVidWZmZXJNYW5hZ2VyLT5nZXREZWZh
dWx0RnJhbWVidWZmZXIoKS0+aWQoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGVnbDo6Tm9FcnJv
cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1N1
cmZhY2UuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1N1cmZhY2Uu
Y3BwCmluZGV4IGUyOTJlNDc0MDc2Mzk3YzkwMWU4OTk1NmUyZTk5MTFkMjAwMzQyNGQuLmM0YzYw
NWMxYTZmYWFjODc0NTUwODJiZDAwZGIxYjVmMTRhN2I2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvU3VyZmFjZS5jcHAKQEAgLTYxOCwxMCArNjE4LDEw
IEBAIEVycm9yIFN1cmZhY2U6OmdldEJ1ZmZlckFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4
dCwgRUdMaW50ICphZ2UpIGNvbnN0CiAgICAgcmV0dXJuIG1JbXBsZW1lbnRhdGlvbi0+Z2V0QnVm
ZmVyQWdlKGNvbnRleHQsIGFnZSk7CiB9CiAKLWdsOjpGcmFtZWJ1ZmZlciAqU3VyZmFjZTo6Y3Jl
YXRlRGVmYXVsdEZyYW1lYnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdsOjpTdXJmYWNl
ICpyZWFkU3VyZmFjZSkKK3N0ZDo6dW5pcXVlX3B0cjxnbDo6RnJhbWVidWZmZXI+IFN1cmZhY2U6
OmNyZWF0ZURlZmF1bHRGcmFtZWJ1ZmZlcihjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlZ2w6OlN1cmZhY2UgKnJlYWRTdXJmYWNlKQogewotICAgIHJldHVybiBuZXcgZ2w6
OkZyYW1lYnVmZmVyKGNvbnRleHQsIHRoaXMsIHJlYWRTdXJmYWNlKTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxnbDo6RnJhbWVidWZmZXI+KGNvbnRleHQsIHRoaXMsIHJlYWRTdXJmYWNl
KTsKIH0KIAogZ2w6OkluaXRTdGF0ZSBTdXJmYWNlOjppbml0U3RhdGUoY29uc3QgZ2w6OkltYWdl
SW5kZXggJiAvKmltYWdlSW5kZXgqLykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TdXJmYWNlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvU3VyZmFjZS5oCmluZGV4IGIwZGJhZDgyZGU5MDkxZWUzMDEwZjdhMDAw
N2EyMTU4Mjg3NmY0ZWYuLjg0MDFiYmU1NjJjYTE5YTI2MDYyYjA5OGJhYWQ2NzgwZDQwYWVlNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TdXJmYWNl
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1N1cmZhY2UuaApA
QCAtMTA0LDggKzEwNCw4IEBAIGNsYXNzIFN1cmZhY2UgOiBwdWJsaWMgTGFiZWxlZE9iamVjdCwg
cHVibGljIGdsOjpGcmFtZWJ1ZmZlckF0dGFjaG1lbnRPYmplY3QKICAgICB2b2lkIHNldEZpeGVk
V2lkdGgoRUdMaW50IHdpZHRoKTsKICAgICB2b2lkIHNldEZpeGVkSGVpZ2h0KEVHTGludCBoZWln
aHQpOwogCi0gICAgZ2w6OkZyYW1lYnVmZmVyICpjcmVhdGVEZWZhdWx0RnJhbWVidWZmZXIoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWdsOjpTdXJmYWNlICpyZWFkU3VyZmFjZSk7CisgICAgc3RkOjp1bmlx
dWVfcHRyPGdsOjpGcmFtZWJ1ZmZlcj4gY3JlYXRlRGVmYXVsdEZyYW1lYnVmZmVyKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2w6OlN1cmZhY2UgKnJlYWRTdXJmYWNlKTsKIAog
ICAgIGNvbnN0IENvbmZpZyAqZ2V0Q29uZmlnKCkgY29uc3Q7CiAKQEAgLTIxNSw4ICsyMTUsNiBA
QCBjbGFzcyBTdXJmYWNlIDogcHVibGljIExhYmVsZWRPYmplY3QsIHB1YmxpYyBnbDo6RnJhbWVi
dWZmZXJBdHRhY2htZW50T2JqZWN0CiAgICAgflN1cmZhY2UoKSBvdmVycmlkZTsKICAgICByeDo6
RnJhbWVidWZmZXJBdHRhY2htZW50T2JqZWN0SW1wbCAqZ2V0QXR0YWNobWVudEltcGwoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIGdsOjpGcmFtZWJ1ZmZlciAqY3JlYXRlRGVmYXVsdEZyYW1lYnVm
ZmVyKGNvbnN0IERpc3BsYXkgKmRpc3BsYXkpOwotCiAgICAgLy8gQU5HTEUtb25seSBtZXRob2Qs
IHVzZWQgaW50ZXJuYWxseQogICAgIGZyaWVuZCBjbGFzcyBnbDo6VGV4dHVyZTsKICAgICBFcnJv
ciByZWxlYXNlVGV4SW1hZ2VGcm9tVGV4dHVyZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCk7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>