<?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>219325</bug_id>
          
          <creation_ts>2020-11-28 09:12:32 -0800</creation_ts>
          <short_desc>[WPE][GTK] flatpak-spawn subsandbox clears environment variables, breaks EphyPermissionsManager</short_desc>
          <delta_ts>2021-02-01 17:45:35 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>218121</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>alexl</cc>
    
    <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pgriffis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1710425</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-11-28 09:12:32 -0800</bug_when>
    <thetext>When logging into a certain website in Ephy Tech Preview, I notice that I am prompted to choose whether to save my password every time, despite selecting &quot;Never Save&quot; the password each time. I should not be prompted again when I select &quot;Never Save.&quot; But this works perfectly fine outside flatpak. I wound up debugging EphyPermissionsManager and determined that its GKeyfileSettingsBackend is returning bogus results when the EphyPermissionsManager is created in the web process (but it works fine in the UI process). Turns out the GKeyfileSettingsBackend is created for the wrong filename: ~/.local/share/epiphany/permissions.ini (wrong) instead of ~/.var/app/org.gnome.Epiphany.Devel/data/epiphany/permissions.ini. Turns out ephy_default_profile_dir() is wrong. But that is set from g_get_user_data_dir(), which is set from $XDG_DATA_HOME. flatpak sets that to /home/mcatanzaro/.var/app/org.gnome.Epiphany.Devel/data, and that&apos;s what it is set to in the UI process. But in the web process, it is unset, so g_get_user_data_dir() falls back to ~/.local/share/epiphany, which is not persistent, and we have a disaster.

So somehow the environment variable is being filtered before it reaches the web process, presumably by flatpak-spawn. I&apos;m very confused, because FlatpakLauncher.cpp does not pass --clear-env to flatpak-spawn, implying that environment variables should not be cleared. We should either fix it somehow, or disable the flatpak-spawn subsandbox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710427</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-11-28 09:29:35 -0800</bug_when>
    <thetext>I think the source code for this is in flatpak/portal/flatpak-portal.c? And the problem isn&apos;t that the environment is cleared, but that the environment is inherited from the host rather than from the sandboxed UI process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721622</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-22 10:38:31 -0800</bug_when>
    <thetext>Hi Patrick, do you think it would be safe for us to manually forward the entire environment using &apos;flatpak-spawn --env&apos;? I think that&apos;s the most plausible solution here. If we forward only a subset of environment variables, who knows what else might break, right? It would also be super confusing for environment variables to not affect the web process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721963</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Larsson">alexl</who>
    <bug_when>2021-01-25 00:25:35 -0800</bug_when>
    <thetext>I don&apos;t quite understand this. The spawned process will start with either an empty env (--clear-env), or the host env, and on top of that will be whatever was passed via --env (although, it might be nice to have a --forward-env options that just took the env from the parent of the flatpak-spawn call). 

However, it should still set the $XDG_DATA_HOME env var. That is set irregardless of what env the process starts from. And, in my testing this seems to work:

[alex@greebo ~]$ flatpak run --command=bash org.gnome.gedit
[📦 org.gnome.gedit ~]$ export XDG_DATA_FOO=FOO
[📦 org.gnome.gedit ~]$ export | grep XDG_DATA_
declare -x XDG_DATA_DIRS=&quot;/app/share:/usr/share:/usr/share/runtime/share:/run/host/user-share:/run/host/share&quot;
declare -x XDG_DATA_FOO=&quot;FOO&quot;
declare -x XDG_DATA_HOME=&quot;/home/alex/.var/app/org.gnome.gedit/data&quot;
[📦 org.gnome.gedit ~]$ flatpak-spawn --env=XDG_DATA_BAR=BAR bash -c export | grep XDG_DATA_
declare -x XDG_DATA_BAR=&quot;BAR&quot;
declare -x XDG_DATA_DIRS=&quot;/app/share:/usr/share:/usr/share/runtime/share:/run/host/user-share:/run/host/share&quot;
declare -x XDG_DATA_HOME=&quot;/home/alex/.var/app/org.gnome.gedit/data&quot;
[📦 org.gnome.gedit ~]$ export XDG_DATA_HOME=/foo/bar
[📦 org.gnome.gedit ~]$ flatpak-spawn --env=XDG_DATA_BAR=BAR bash -c export | grep XDG_DATA_
declare -x XDG_DATA_BAR=&quot;BAR&quot;
declare -x XDG_DATA_DIRS=&quot;/app/share:/usr/share:/usr/share/runtime/share:/run/host/user-share:/run/host/share&quot;
declare -x XDG_DATA_HOME=&quot;/home/alex/.var/app/org.gnome.gedit/data&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722101</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-25 09:27:52 -0800</bug_when>
    <thetext>Hm, interesting. That is indeed the behavior we *want* to get for XDG_DATA_HOME, but it&apos;s not the behavior we are actually getting. I have no clue why not.

(In reply to Alexander Larsson from comment #3)
&gt; (although, it might be nice to have a
&gt; --forward-env options that just took the env from the parent of the
&gt; flatpak-spawn call). 

Yeah that would be nice indeed, because otherwise simple things like debug environment variables will not work. E.g. you expect setting GST_DEBUG will result in a gstreamer debug log, but it will get stripped out. So I think we must propagate all environment variables regardless of whether XDG dirs are handled specially.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723170</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-27 15:13:09 -0800</bug_when>
    <thetext>OK, something weird is going on. Inside the UI process sandbox, we have:

$ env | grep XDG
XDG_CONFIG_DIRS=/app/etc/xdg:/etc/xdg
XDG_MENU_PREFIX=gnome-
XDG_DATA_HOME=/home/mcatanzaro/.var/app/org.gnome.Epiphany.Devel/data
XDG_CONFIG_HOME=/home/mcatanzaro/.var/app/org.gnome.Epiphany.Devel/config
XDG_SESSION_DESKTOP=gnome
XDG_SESSION_TYPE=wayland
XDG_CURRENT_DESKTOP=GNOME
XDG_CACHE_HOME=/home/mcatanzaro/.var/app/org.gnome.Epiphany.Devel/cache
XDG_SESSION_CLASS=user
XDG_RUNTIME_DIR=/run/user/1000
XDG_DATA_DIRS=/app/share:/usr/share:/usr/share/runtime/share:/run/host/user-share:/run/host/share

But in the web process sandbox:

$ env | grep XDG
XDG_CONFIG_DIRS=/app/etc/xdg:/etc/xdg
XDG_MENU_PREFIX=gnome-
XDG_SESSION_DESKTOP=gnome
XDG_SESSION_TYPE=wayland
XDG_CURRENT_DESKTOP=GNOME
XDG_SESSION_CLASS=user
XDG_RUNTIME_DIR=/run/user/1000
XDG_DATA_DIRS=/app/share:/usr/share:/usr/share/runtime/share:/run/host/user-share:/run/host/share

So the web process sandbox is getting some things from flatpak, because we see /app in the web process. Comparing the full differences (not copied here), I see the web process is missing a few things set by gnome-shell when launching apps: GJS_DEBUG_OUTPUT, DESTKOP_STARTUP_ID, GIO_LAUNCHED_DESKTOP_FILE_PID, and GIO_LAUNCHED_DESKTOP_FILE. The web process is also missing DBUS_SYSTEM_BUS_ADDRESS, which means geolocation is probably broken (and indeed, I see a comment in FlatpakLauncher.cpp &quot;Note that this only allows portals and $appid.Sandbox.* access&quot; that indicates this is intentional). Finally, the web process is missing XDG_DATA_HOME, XDG_CONFIG_HOME, and XDG_CACHE_HOME.

Since that is inconsistent from what Alex&apos;s test shows, I entered the UI process sandbox and ran:

$ flatpak-spawn bash -c env | grep XDG_DATA
XDG_DATA_HOME=/home/mcatanzaro/.var/app/org.gnome.Epiphany/data
XDG_DATA_DIRS=/app/share:/usr/share:/usr/share/runtime/share:/run/host/share

which confirms Alex&apos;s test. That&apos;s hard to explain. Why is our web process getting different behavior than when we manually call flatpak-spawn?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723175</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-27 15:20:04 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; which confirms Alex&apos;s test. That&apos;s hard to explain. Why is our web process
&gt; getting different behavior than when we manually call flatpak-spawn?

Ah sorry, the difference is the --sandbox flag. Passing --sandbox makes the XDG dirs go away. So that&apos;s what breaks EphyPermissionsManager.

It does not matter, because we really do need to propagate the entire environment regardless for the reasons mentioned above. This is very frustrating to test, though, because flatpak-spawn just refuses to do anything when run outside a flatpak sandbox, which makes development pretty difficult. The best I can do is submit an untested patch and add it to gnome-build-meta to see if it works. If we have instructions for building modified flatpak runtimes anywhere, that would be wonderful, but I suspect that&apos;s one of those things we just never got around to making easy....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723180</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-27 15:38:50 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #6)
&gt; This is very
&gt; frustrating to test, though, because flatpak-spawn just refuses to do
&gt; anything when run outside a flatpak sandbox, which makes development pretty
&gt; difficult.

OK, solution is obvious: WebKit has an entire flatpak dev environment set up... all I have to do is figure out how to use the wrapper scripts. I can do this. :P

For now, I&apos;ll upload my patch, without r? for now until I&apos;ve tested it properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723183</commentid>
    <comment_count>8</comment_count>
      <attachid>418591</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-27 15:43:23 -0800</bug_when>
    <thetext>Created attachment 418591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723378</commentid>
    <comment_count>9</comment_count>
      <attachid>418591</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-28 08:53:47 -0800</bug_when>
    <thetext>Comment on attachment 418591
Patch

OK, I can&apos;t actually test it with run-minibrowser because it doesn&apos;t run a real flatpak environment. It just does this:

$ run-minibrowser --gtk
Portal call failed: Authorization error: Key file does not have group “Application”
Portal call failed: Authorization error: Key file does not have group “Application”

** (MiniBrowser:21): WARNING **: 08:52:21.529: WebProcess CRASHED


This shouldn&apos;t happen in a real flatpak though. I think this is safe to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724239</commentid>
    <comment_count>10</comment_count>
      <attachid>418591</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-02-01 07:40:54 -0800</bug_when>
    <thetext>Comment on attachment 418591
Patch

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

&gt; Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp:71
&gt; +    // One hopes. Anything that contains = might break, but best we can do is pass it along.

I realized this is actually quite easy to test inside a flatpak sandbox:

$ flatpak-spawn --sandbox --env=G_DEBUG=fatal-criticals env | grep G_DEBUG
G_DEBUG=fatal-criticals

So it works as expected. We&apos;re sure to have problems if any environment variable contains anything that&apos;s not suitable for the shell, though. So let&apos;s add a call to g_shell_quote().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724247</commentid>
    <comment_count>11</comment_count>
      <attachid>418876</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-02-01 08:15:48 -0800</bug_when>
    <thetext>Created attachment 418876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724346</commentid>
    <comment_count>12</comment_count>
      <attachid>418876</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-02-01 11:55:05 -0800</bug_when>
    <thetext>Comment on attachment 418876
Patch

Patch idea LGTM, but please fix the issue below before landing :]


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

&gt; Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp:72
&gt; +        GUniquePtr&lt;char&gt; quotedVariable(g_shell_quote(*variable));

Quoting the variable here is wrong because g_subprocess_launcher_spawnv()
below will result in the executable being invoked directly *without* the
shell intervening — either through a call to posix_spawn(), or a fork()+execv*()
combo inside GLib.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724382</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-02-01 13:12:52 -0800</bug_when>
    <thetext>You are right. Good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724402</commentid>
    <comment_count>14</comment_count>
      <attachid>418919</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-02-01 13:57:25 -0800</bug_when>
    <thetext>Created attachment 418919
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724459</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-01 16:09:46 -0800</bug_when>
    <thetext>Committed r272179: &lt;https://trac.webkit.org/changeset/272179&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418919.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724485</commentid>
    <comment_count>16</comment_count>
      <attachid>418919</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-02-01 17:45:35 -0800</bug_when>
    <thetext>Comment on attachment 418919
Patch for landing

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        Manually forward all environment variables from the web process to the UI process.

Oops, it landed with this typo. Of course it&apos;s supposed to say: &quot;Manually forward all environment variables from the UI process to the web process.&quot;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418591</attachid>
            <date>2021-01-27 15:43:23 -0800</date>
            <delta_ts>2021-02-01 08:15:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219325-20210127174322.patch</filename>
            <type>text/plain</type>
            <size>2369</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBhYWMyNTZmZDgwOGRhNDVh
ZDI1MTVmZDEzNjk2YmYyYTJkOGExMDYuLjA0ZmI4ZDg4NzhjMmM2NzZhNTJkMzA4OThiYThiMDc5
YTUwNzE0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDEtMjcgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgW1dQRV1bR1RLXSBm
bGF0cGFrLXNwYXduIHN1YnNhbmRib3ggY2xlYXJzIGVudmlyb25tZW50IHZhcmlhYmxlcywgYnJl
YWtzIEVwaHlQZXJtaXNzaW9uc01hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxOTMyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1hbnVhbGx5IGZvcndhcmQgYWxsIGVudmlyb25tZW50IHZhcmlh
YmxlcyBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgRXBo
eVBlcm1pc3Npb25zTWFuYWdlciBpcyBicmVha2luZyBiZWNhdXNlIFhERyBkaXJlY3RvcmllcyBh
cmUgbm90IHNldCBpbiB0aGUgd2ViIHByb2Nlc3MsCisgICAgICAgIGJlY2F1c2UgZmxhdHBhay1z
cGF3biBsYXVuY2hlcyBzdWJwcm9jZXNzZXMgd2l0aCB0aGUgZW52aXJvbm1lbnQgb2YgdGhlIGhv
c3Qgc3lzdGVtIHJhdGhlcgorICAgICAgICB0aGFuIHRoZSBlbnZpcm9ubWVudCBvZiB0aGUgcGFy
ZW50IHByb2Nlc3MuIEJ1dCBhbHNvLCB3ZSByZWFsbHkgbmVlZCB0byBmb3J3YXJkIHRoZSBlbnRp
cmUKKyAgICAgICAgZW52aXJvbm1lbnQsIGJlY2F1c2Ugb3RoZXJ3aXNlIGJhc2ljIGV4cGVjdGVk
IGZlYXR1cmVzIGxpa2UgR1NUX0RFQlVHLCBHX01FU1NBR0VTX0RFQlVHLCBhbmQKKyAgICAgICAg
c3VjaCB3aWxsIGJlIGJyb2tlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9nbGli
L0ZsYXRwYWtMYXVuY2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OmZsYXRwYWtTcGF3bik6CisK
IDIwMjEtMDEtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gVGl0bGViYXIgc2VwYXJhdG9yIGRvZXNuJ3Qgc2hvdyB3aGVuIFdLV2ViVmll
dyBpcyBzY3JvbGxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwCmluZGV4IDFjMGY0NGFmNmFlMjM5ZTEwOWFh
YWJlZWRlNGM3N2JhNWEyMDEzMzAuLjRkNWRmODA3NzI0YTU0NjI0NjUzMGRjNmFmNzM5OWY1NWM3
ZDU5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIv
RmxhdHBha0xhdW5jaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAKQEAgLTY2LDYgKzY2LDE1IEBAIEdSZWZQdHI8R1N1
YnByb2Nlc3M+IGZsYXRwYWtTcGF3bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgY29u
c3QgV2ViS2l0OjpQCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBXZSBuZWVkIHRvIHBhc3Mg
b3VyIGZ1bGwgZW52aXJvbm1lbnQgdG8gdGhlIHN1YnByb2Nlc3MuIEJlY2F1c2UgdGhlIGVudmly
b25tZW50IGlzIHRydXN0ZWQsCisgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBjaGVjayBmb3IgbmF1
Z2h0eSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHNvIHRoaXMgbmFpdmUgbG9vcCBzaG91bGQgYmUg
c2FmZS4KKyAgICAvLyBPbmUgaG9wZXMuIEFueXRoaW5nIHRoYXQgY29udGFpbnMgPSBtaWdodCBi
cmVhaywgYnV0IGJlc3Qgd2UgY2FuIGRvIGlzIHBhc3MgaXQgYWxvbmcuCisgICAgR1VuaXF1ZVB0
cjxjaGFyKj4gZW52aXJvbihnX2dldF9lbnZpcm9uKCkpOworICAgIGZvciAoY2hhcioqIHZhciA9
IGVudmlyb24uZ2V0KCk7IHZhciAmJiAqdmFyOyB2YXIrKykgeworICAgICAgICBHVW5pcXVlUHRy
PGNoYXI+IGFyZyhnX3N0cmNvbmNhdCgiLS1lbnY9IiwgKnZhciwgbnVsbHB0cikpOworICAgICAg
ICBmbGF0cGFrQXJncy5hcHBlbmQoYXJnLmdldCgpKTsKKyAgICB9CisKICAgICBjaGFyKiogbmV3
QXJndiA9IGdfbmV3YShjaGFyKiwgZ19zdHJ2X2xlbmd0aChhcmd2KSArIGZsYXRwYWtBcmdzLnNp
emUoKSArIDEpOwogICAgIHNpemVfdCBpID0gMDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418876</attachid>
            <date>2021-02-01 08:15:48 -0800</date>
            <delta_ts>2021-02-01 13:57:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219325-20210201101547.patch</filename>
            <type>text/plain</type>
            <size>2242</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBhYWMyNTZmZDgwOGRhNDVh
ZDI1MTVmZDEzNjk2YmYyYTJkOGExMDYuLjFlMjMzOGMyM2I3ZGYwOTg1MTdhMDBmMTRkMzU5ZTVi
OGQzZWQ1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDItMDEgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgW1dQRV1bR1RLXSBm
bGF0cGFrLXNwYXduIHN1YnNhbmRib3ggY2xlYXJzIGVudmlyb25tZW50IHZhcmlhYmxlcywgYnJl
YWtzIEVwaHlQZXJtaXNzaW9uc01hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxOTMyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1hbnVhbGx5IGZvcndhcmQgYWxsIGVudmlyb25tZW50IHZhcmlh
YmxlcyBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgRXBo
eVBlcm1pc3Npb25zTWFuYWdlciBpcyBicmVha2luZyBiZWNhdXNlIFhERyBkaXJlY3RvcmllcyBh
cmUgbm90IHNldCBpbiB0aGUgd2ViIHByb2Nlc3MsCisgICAgICAgIGJlY2F1c2UgZmxhdHBhay1z
cGF3biBsYXVuY2hlcyBzdWJwcm9jZXNzZXMgd2l0aCB0aGUgZW52aXJvbm1lbnQgb2YgdGhlIGhv
c3Qgc3lzdGVtIHJhdGhlcgorICAgICAgICB0aGFuIHRoZSBlbnZpcm9ubWVudCBvZiB0aGUgcGFy
ZW50IHByb2Nlc3MuIEJ1dCBhbHNvLCB3ZSByZWFsbHkgbmVlZCB0byBmb3J3YXJkIHRoZSBlbnRp
cmUKKyAgICAgICAgZW52aXJvbm1lbnQsIGJlY2F1c2Ugb3RoZXJ3aXNlIGJhc2ljIGV4cGVjdGVk
IGZlYXR1cmVzIGxpa2UgR1NUX0RFQlVHLCBHX01FU1NBR0VTX0RFQlVHLCBhbmQKKyAgICAgICAg
c3VjaCB3aWxsIGJlIGJyb2tlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9nbGli
L0ZsYXRwYWtMYXVuY2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OmZsYXRwYWtTcGF3bik6CisK
IDIwMjEtMDEtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gVGl0bGViYXIgc2VwYXJhdG9yIGRvZXNuJ3Qgc2hvdyB3aGVuIFdLV2ViVmll
dyBpcyBzY3JvbGxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwCmluZGV4IDFjMGY0NGFmNmFlMjM5ZTEwOWFh
YWJlZWRlNGM3N2JhNWEyMDEzMzAuLmY4MzRlYTMzOGE1N2VmODI1YWM4YWQ0MDMzMzcwYzgxNTE0
YWFiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIv
RmxhdHBha0xhdW5jaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAKQEAgLTY2LDYgKzY2LDE0IEBAIEdSZWZQdHI8R1N1
YnByb2Nlc3M+IGZsYXRwYWtTcGF3bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgY29u
c3QgV2ViS2l0OjpQCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBXZSBuZWVkIHRvIHBhc3Mg
b3VyIGZ1bGwgZW52aXJvbm1lbnQgdG8gdGhlIHN1YnByb2Nlc3MuCisgICAgR1VuaXF1ZVB0cjxj
aGFyKj4gZW52aXJvbihnX2dldF9lbnZpcm9uKCkpOworICAgIGZvciAoY2hhcioqIHZhcmlhYmxl
ID0gZW52aXJvbi5nZXQoKTsgdmFyaWFibGUgJiYgKnZhcmlhYmxlOyB2YXJpYWJsZSsrKSB7Cisg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gcXVvdGVkVmFyaWFibGUoZ19zaGVsbF9xdW90ZSgqdmFy
aWFibGUpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBhcmcoZ19zdHJjb25jYXQoIi0tZW52
PSIsIHF1b3RlZFZhcmlhYmxlLmdldCgpLCBudWxscHRyKSk7CisgICAgICAgIGZsYXRwYWtBcmdz
LmFwcGVuZChhcmcuZ2V0KCkpOworICAgIH0KKwogICAgIGNoYXIqKiBuZXdBcmd2ID0gZ19uZXdh
KGNoYXIqLCBnX3N0cnZfbGVuZ3RoKGFyZ3YpICsgZmxhdHBha0FyZ3Muc2l6ZSgpICsgMSk7CiAg
ICAgc2l6ZV90IGkgPSAwOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418919</attachid>
            <date>2021-02-01 13:57:25 -0800</date>
            <delta_ts>2021-02-01 16:09:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219325-20210201155725.patch</filename>
            <type>text/plain</type>
            <size>2166</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJjYWQ3OGYxZTZlZjQ4OTlk
NmZlMzA0N2U5MzkzMmRjZWI5M2IxZTIuLmMzNTZjMDAwNzdiYmM5YWNjZjg4NGNlZjg1YmJkZGVi
ZmFmNGEyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDItMDEgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgW1dQRV1bR1RLXSBm
bGF0cGFrLXNwYXduIHN1YnNhbmRib3ggY2xlYXJzIGVudmlyb25tZW50IHZhcmlhYmxlcywgYnJl
YWtzIEVwaHlQZXJtaXNzaW9uc01hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxOTMyNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8uCisKKyAgICAgICAgTWFudWFsbHkgZm9yd2FyZCBhbGwgZW52aXJvbm1l
bnQgdmFyaWFibGVzIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAg
ICAgICBFcGh5UGVybWlzc2lvbnNNYW5hZ2VyIGlzIGJyZWFraW5nIGJlY2F1c2UgWERHIGRpcmVj
dG9yaWVzIGFyZSBub3Qgc2V0IGluIHRoZSB3ZWIgcHJvY2VzcywKKyAgICAgICAgYmVjYXVzZSBm
bGF0cGFrLXNwYXduIGxhdW5jaGVzIHN1YnByb2Nlc3NlcyB3aXRoIHRoZSBlbnZpcm9ubWVudCBv
ZiB0aGUgaG9zdCBzeXN0ZW0gcmF0aGVyCisgICAgICAgIHRoYW4gdGhlIGVudmlyb25tZW50IG9m
IHRoZSBwYXJlbnQgcHJvY2Vzcy4gQnV0IGFsc28sIHdlIHJlYWxseSBuZWVkIHRvIGZvcndhcmQg
dGhlIGVudGlyZQorICAgICAgICBlbnZpcm9ubWVudCwgYmVjYXVzZSBvdGhlcndpc2UgYmFzaWMg
ZXhwZWN0ZWQgZmVhdHVyZXMgbGlrZSBHU1RfREVCVUcsIEdfTUVTU0FHRVNfREVCVUcsIGFuZAor
ICAgICAgICBzdWNoIHdpbGwgYmUgYnJva2VuLgorCisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZmxhdHBha1Nw
YXduKToKKwogMjAyMS0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBzdXBwb3J0IGZvciBkYXRhIFVSTHMgaW4gdGhl
IG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwCmluZGV4IDFjMGY0NGFmNmFlMjM5ZTEw
OWFhYWJlZWRlNGM3N2JhNWEyMDEzMzAuLmE3Njg4NjRmZjY3ZGU2YWMwZWIwNDA3Y2E1OWU3MDRh
Mjc1MTczZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2ds
aWIvRmxhdHBha0xhdW5jaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAKQEAgLTY2LDYgKzY2LDEzIEBAIEdSZWZQdHI8
R1N1YnByb2Nlc3M+IGZsYXRwYWtTcGF3bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwg
Y29uc3QgV2ViS2l0OjpQCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBXZSBuZWVkIHRvIHBh
c3Mgb3VyIGZ1bGwgZW52aXJvbm1lbnQgdG8gdGhlIHN1YnByb2Nlc3MuCisgICAgR1VuaXF1ZVB0
cjxjaGFyKj4gZW52aXJvbihnX2dldF9lbnZpcm9uKCkpOworICAgIGZvciAoY2hhcioqIHZhcmlh
YmxlID0gZW52aXJvbi5nZXQoKTsgdmFyaWFibGUgJiYgKnZhcmlhYmxlOyB2YXJpYWJsZSsrKSB7
CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gYXJnKGdfc3RyY29uY2F0KCItLWVudj0iLCAqdmFy
aWFibGUsIG51bGxwdHIpKTsKKyAgICAgICAgZmxhdHBha0FyZ3MuYXBwZW5kKGFyZy5nZXQoKSk7
CisgICAgfQorCiAgICAgY2hhcioqIG5ld0FyZ3YgPSBnX25ld2EoY2hhciosIGdfc3Rydl9sZW5n
dGgoYXJndikgKyBmbGF0cGFrQXJncy5zaXplKCkgKyAxKTsKICAgICBzaXplX3QgaSA9IDA7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>