<?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>199367</bug_id>
          
          <creation_ts>2019-07-01 09:06:54 -0700</creation_ts>
          <short_desc>[GTK][WPE] Explicitly blacklist problematic directories for sandbox</short_desc>
          <delta_ts>2019-07-02 16:05:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick Griffis">pgriffis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1549231</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-01 09:06:54 -0700</bug_when>
    <thetext>[GTK][WPE] Explicitly blacklist problematic directories for sandbox</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549232</commentid>
    <comment_count>1</comment_count>
      <attachid>373238</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-01 09:09:20 -0700</bug_when>
    <thetext>Created attachment 373238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549233</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-01 09:11:00 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549237</commentid>
    <comment_count>3</comment_count>
      <attachid>373240</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-01 09:36:21 -0700</bug_when>
    <thetext>Created attachment 373240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549238</commentid>
    <comment_count>4</comment_count>
      <attachid>373240</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-07-01 09:40:51 -0700</bug_when>
    <thetext>Comment on attachment 373240
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1200
&gt; +    /* These are backend specific though the blacklist covers all for consistent support */
&gt; +    const Vector&lt;CString&gt; blacklistedPrefixes = {
&gt; +        &quot;/tmp&quot;, /* This doesn&apos;t work with flatpak-spawn */
&gt; +        /* The rest of these are re-created by the bwrap sandbox in both cases and don&apos;t make sense */
&gt; +        &quot;/sys&quot;, &quot;/proc&quot;, &quot;/dev&quot;,
&gt; +    };
&gt; +
&gt; +    for (const CString&amp; prefix : blacklistedPrefixes) {
&gt; +        if (g_str_has_prefix(path, prefix.data()))
&gt; +            return false;
&gt; +    }

Shouldn&apos;t this paths be matched with a trailing &quot;/&quot;?
Otherwise if there is a path named &quot;/system&quot; it looks like is going to match here with &quot;/sys&quot; (for example), isn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549240</commentid>
    <comment_count>5</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-01 09:43:30 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #4)
&gt; Comment on attachment 373240 [details]
&gt; 
&gt; Shouldn&apos;t this paths be matched with a trailing &quot;/&quot;?
&gt; Otherwise if there is a path named &quot;/system&quot; it looks like is going to match
&gt; here with &quot;/sys&quot; (for example), isn&apos;t it?

Good catch. Yeah we need to handle `/sys` as well as `/sys/foo` though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549243</commentid>
    <comment_count>6</comment_count>
      <attachid>373243</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-01 09:55:22 -0700</bug_when>
    <thetext>Created attachment 373243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549247</commentid>
    <comment_count>7</comment_count>
      <attachid>373244</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-01 10:09:34 -0700</bug_when>
    <thetext>Created attachment 373244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549257</commentid>
    <comment_count>8</comment_count>
      <attachid>373244</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-07-01 10:59:39 -0700</bug_when>
    <thetext>Comment on attachment 373244
Patch

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

Good catch Carlos!

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1199
&gt; +    /* NOTE: Due to previous check there is always 1 leading `/` */

one

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1201
&gt; +    return blacklistedPrefixes.find(splitPath.get()[1]) == WTF::notFound;

What happens if path is &quot;/&quot;? g_strsplit returns a strv with two empty strings and it doesn&apos;t crash? Seems unlikely?

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1225
&gt; +    g_return_if_fail(pathIsNotBlacklisted(path));

This is OK, but g_critical() with an error message would be nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549283</commentid>
    <comment_count>9</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-01 13:15:03 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #8)
&gt; Comment on attachment 373244 [details]
&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1201
&gt; &gt; +    return blacklistedPrefixes.find(splitPath.get()[1]) == WTF::notFound;
&gt; 
&gt; What happens if path is &quot;/&quot;? g_strsplit returns a strv with two empty
&gt; strings and it doesn&apos;t crash? Seems unlikely?

Sure does: g_stv_length() == 2 and it contains {&quot;&quot;, &quot;&quot;, NULL}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549286</commentid>
    <comment_count>10</comment_count>
      <attachid>373250</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-01 13:23:30 -0700</bug_when>
    <thetext>Created attachment 373250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549317</commentid>
    <comment_count>11</comment_count>
      <attachid>373250</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-07-01 14:11:19 -0700</bug_when>
    <thetext>Comment on attachment 373250
Patch

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

OK, only nits remaining from me.

I&apos;ll wait until tomorrow before giving r+ in case Carlos Garcia wants any changes.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1190
&gt; +    /* These are backend specific though the blacklist covers all for consistent support */

// The directories that won&apos;t work are specific to the sandbox backends, but the blacklist covers all of them for consistency.

Note: //

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1195
&gt; +        &quot;tmp&quot;, /* This doesn&apos;t work with flatpak-spawn */
&gt; +        /* The rest of these are re-created by the bwrap sandbox in both cases and don&apos;t make sense */
&gt; +        &quot;sys&quot;, &quot;proc&quot;, &quot;dev&quot;,
&gt; +        /* A value of just `/` also doesn&apos;t make sense */

Besides changing the comments from /* to //, also be sure to end them with a period to form a complete sentence. This is a WebKit style requirement.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1199
&gt; +    /* NOTE: Due to previous check there is always one leading `/` */

Ditto.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1214
&gt; + * Paths in directories such as `/tmp`, `/sys`, `/proc`, and `/dev` or all of `/` are not valid.

Wrap at 80 chars

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1227
&gt; +        g_critical(&quot;Path added to sandbox is blacklisted (%s)&quot;, path);

How about: &quot;Attempted to add disallowed path to sandbox: %s&quot;

Might as well also first do:

if (!g_path_is_absolute(path)) {
    g_critical(&quot;Attempted to add relative path to sandbox, but paths must be absolute&quot;);
    return;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549499</commentid>
    <comment_count>12</comment_count>
      <attachid>373250</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-02 01:28:49 -0700</bug_when>
    <thetext>Comment on attachment 373250
Patch

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

&gt; Source/WebKit/ChangeLog:7
&gt; +

Explain the change here, please. What are problematic directories?

&gt; Source/WebKit/ChangeLog:9
&gt; +        (path_is_not_blacklisted):

pathIsBlacklisted

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1191
&gt; +    const Vector&lt;CString&gt; blacklistedPrefixes = {

static? You can also pass the inline capacity to avoid heap allocation, since the vector size is fixed. 

static const Vector&lt;CString, 5&gt; blacklistedPrefixes = {

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1199
&gt;&gt; +    /* NOTE: Due to previous check there is always one leading `/` */
&gt; 
&gt; Ditto.

What previous check? g_path_is_absolute in the caller? I would add an assert here, it&apos;s self documented and ensures that&apos;s the case. Or we can move the check to this function and consider relative paths to be blacklisted too.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1201
&gt; +    return blacklistedPrefixes.find(splitPath.get()[1]) != WTF::notFound;

This is Vector::contains()

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:1228
&gt; +        return;

Ok, so we don&apos;t allow to add certain paths to the sandbox explicitly. This should be testable, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549523</commentid>
    <comment_count>13</comment_count>
      <attachid>373250</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-07-02 05:00:18 -0700</bug_when>
    <thetext>Comment on attachment 373250
Patch

We agreed on IRC that /tmp needs to not be blacklisted and the flatpak-spawn subsandbox just needs to go away since it doesn&apos;t fit our requirements to allow whitelisting under /tmp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549524</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-07-02 05:01:54 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #12) 
&gt; Ok, so we don&apos;t allow to add certain paths to the sandbox explicitly. This
&gt; should be testable, no?

I thought about that, but it&apos;s not easily testable because the test would cause a critical (crashing the test). It could be done using g_test_trap_subprocess() to ensure that passing a blacklisted path causes the test to crash, but it seems like a low-value test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549669</commentid>
    <comment_count>15</comment_count>
      <attachid>373349</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-07-02 11:57:37 -0700</bug_when>
    <thetext>Created attachment 373349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549760</commentid>
    <comment_count>16</comment_count>
      <attachid>373349</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 16:05:13 -0700</bug_when>
    <thetext>Comment on attachment 373349
Patch

Clearing flags on attachment: 373349

Committed r247076: &lt;https://trac.webkit.org/changeset/247076&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549761</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 16:05:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373238</attachid>
            <date>2019-07-01 09:09:20 -0700</date>
            <delta_ts>2019-07-01 09:36:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199367-20190701090919.patch</filename>
            <type>text/plain</type>
            <size>2818</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MzllNzY2Mjc3OGNjMmIz
Yzc1YjY0MjY5MWExMDlmYzQ3YzJlODEuLmYxNzIzMjdiMTk5ODIxODc0MjA5NDZmNDM1MTNiNzI1
MmEzMzE3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDctMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBFeHBs
aWNpdGx5IGJsYWNrbGlzdCBwcm9ibGVtYXRpYyBkaXJlY3RvcmllcyBmb3Igc2FuZGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChwYXRoX2lzX25vdF9ibGFj
a2xpc3RlZCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfYWRkX3BhdGhfdG9fc2FuZGJv
eCk6CisKIDIwMTktMDYtMjUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIE5vbi1lZGl0YWJsZSB0ZXh0IHNlbGVjdGlvbnMgc2hvdWxkIGJlIG1vZGlmaWFibGUg
d2l0aCBoYXJkd2FyZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBhNGEwZmVmZTJmOTRiMzVkYmQ0
NThhODFjY2Y1YTMyYzUwNzRjM2FlLi4zODAyMzhjYWQ1OTQwYTVjMzA0NDY3NGRkZTNlNjZkZWQx
MTY2ZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTE4NSw2ICsxMTg1LDIyIEBAIHZvaWQgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9zYW5kYm94X2VuYWJsZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
Z2Jvb2xlYW4KICAgICBjb250ZXh0LT5wcml2LT5wcm9jZXNzUG9vbC0+c2V0U2FuZGJveEVuYWJs
ZWQoZW5hYmxlZCk7CiB9CiAKK3N0YXRpYyBib29sIHBhdGhJc05vdEJsYWNrbGlzdGVkKGNvbnN0
IGNoYXIqIHBhdGgpCit7CisgICAgLyogVGhlc2UgYXJlIGJhY2tlbmQgc3BlY2lmaWMgdGhvdWdo
IHRoZSBibGFja2xpc3QgY292ZXJzIGFsbCBmb3IgY29uc2lzdGVudCBzdXBwb3J0ICovCisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGJsYWNrbGlzdGVkUGF0aHNbXSA9IHsKKyAgICAgICAg
Ii90bXAiLCAvKiBUaGlzIGRvZXNuJ3Qgd29yayB3aXRoIGZsYXRwYWstc3Bhd24gKi8KKyAgICAg
ICAgLyogVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIHJlLWNyZWF0ZWQgYnkgdGhlIGJ3cmFwIHNhbmRi
b3ggaW4gYm90aCBjYXNlcyBhbmQgZG9uJ3QgbWFrZSBzZW5zZSAqLworICAgICAgICAiL3N5cyIs
ICIvcHJvYyIsICIvZGV2IiwKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBH
X05fRUxFTUVOVFMoYmxhY2tsaXN0ZWRQYXRocyk7ICsraSkgeworICAgICAgICBpZiAoZ19zdHJf
aGFzX3ByZWZpeChwYXRoLCBibGFja2xpc3RlZFBhdGhzW2ldKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIC8qKgogICogd2Via2l0X3dl
Yl9jb250ZXh0X2FkZF9wYXRoX3RvX3NhbmRib3g6CiAgKiBAY29udGV4dDogYSAjV2ViS2l0V2Vi
Q29udGV4dApAQCAtMTE5NSw2ICsxMjExLDkgQEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0
X3NhbmRib3hfZW5hYmxlZChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBnYm9vbGVhbgogICog
aGFzIGJlZW4gY3JlYXRlZCBvdGhlcndpc2UgaXQgd2lsbCBiZSBzaWxlbnRseSBpZ25vcmVkLiBJ
dCBpcyBhIGZhdGFsIGVycm9yIHRvCiAgKiBhZGQgcGF0aHMgYWZ0ZXIgYSB3ZWIgcHJvY2VzcyBo
YXMgYmVlbiBzcGF3bmVkLgogICoKKyAqIFBhdGhzIGluIGRpcmVjdG9yaWVzIHN1Y2ggYXMgYC90
bXBgLCBgL3N5c2AsIGAvcHJvY2AsIG9yIGAvZGV2YCBhcmUgbm90IHZhbGlkLgorICogWW91IG1h
eSB3YW50IHRvIHVzZSBgL3Zhci90bXBgIGFzIGFuIGFsdGVybmF0aXZlIHRvIGAvdG1wYC4KKyAq
CiAgKiBTZWUgYWxzbyB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NhbmRib3hfZW5hYmxlZCgpCiAg
KgogICogU2luY2U6IDIuMjYKQEAgLTEyMDMsNiArMTIyMiw3IEBAIHZvaWQgd2Via2l0X3dlYl9j
b250ZXh0X2FkZF9wYXRoX3RvX3NhbmRib3goV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgY29u
c3QgY2hhCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29u
dGV4dCkpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwoZ19wYXRoX2lzX2Fic29sdXRlKHBhdGgpKTsK
KyAgICBnX3JldHVybl9pZl9mYWlsKHBhdGhJc05vdEJsYWNrbGlzdGVkKHBhdGgpKTsKIAogICAg
IGlmIChjb250ZXh0LT5wcml2LT5wcm9jZXNzUG9vbC0+cHJvY2Vzc2VzKCkuc2l6ZSgpKQogICAg
ICAgICBnX2Vycm9yKCJTYW5kYm94IHBhdGhzIGNhbm5vdCBiZSBjaGFuZ2VkIGFmdGVyIHN1YnBy
b2Nlc3NlcyB3ZXJlIHNwYXduZWQuIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373240</attachid>
            <date>2019-07-01 09:36:21 -0700</date>
            <delta_ts>2019-07-01 09:55:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199367-20190701093621.patch</filename>
            <type>text/plain</type>
            <size>2802</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MzllNzY2Mjc3OGNjMmIz
Yzc1YjY0MjY5MWExMDlmYzQ3YzJlODEuLmYxNzIzMjdiMTk5ODIxODc0MjA5NDZmNDM1MTNiNzI1
MmEzMzE3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDctMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBFeHBs
aWNpdGx5IGJsYWNrbGlzdCBwcm9ibGVtYXRpYyBkaXJlY3RvcmllcyBmb3Igc2FuZGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChwYXRoX2lzX25vdF9ibGFj
a2xpc3RlZCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfYWRkX3BhdGhfdG9fc2FuZGJv
eCk6CisKIDIwMTktMDYtMjUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIE5vbi1lZGl0YWJsZSB0ZXh0IHNlbGVjdGlvbnMgc2hvdWxkIGJlIG1vZGlmaWFibGUg
d2l0aCBoYXJkd2FyZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBhNGEwZmVmZTJmOTRiMzVkYmQ0
NThhODFjY2Y1YTMyYzUwNzRjM2FlLi5kNTc0MmRkMTJlNjA2OThkOWU1M2FlYmExNTNmNmYwMWUz
OGQ0NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTE4NSw2ICsxMTg1LDIzIEBAIHZvaWQgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9zYW5kYm94X2VuYWJsZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
Z2Jvb2xlYW4KICAgICBjb250ZXh0LT5wcml2LT5wcm9jZXNzUG9vbC0+c2V0U2FuZGJveEVuYWJs
ZWQoZW5hYmxlZCk7CiB9CiAKK3N0YXRpYyBib29sIHBhdGhJc05vdEJsYWNrbGlzdGVkKGNvbnN0
IGNoYXIqIHBhdGgpCit7CisgICAgLyogVGhlc2UgYXJlIGJhY2tlbmQgc3BlY2lmaWMgdGhvdWdo
IHRoZSBibGFja2xpc3QgY292ZXJzIGFsbCBmb3IgY29uc2lzdGVudCBzdXBwb3J0ICovCisgICAg
Y29uc3QgVmVjdG9yPENTdHJpbmc+IGJsYWNrbGlzdGVkUHJlZml4ZXMgPSB7CisgICAgICAgICIv
dG1wIiwgLyogVGhpcyBkb2Vzbid0IHdvcmsgd2l0aCBmbGF0cGFrLXNwYXduICovCisgICAgICAg
IC8qIFRoZSByZXN0IG9mIHRoZXNlIGFyZSByZS1jcmVhdGVkIGJ5IHRoZSBid3JhcCBzYW5kYm94
IGluIGJvdGggY2FzZXMgYW5kIGRvbid0IG1ha2Ugc2Vuc2UgKi8KKyAgICAgICAgIi9zeXMiLCAi
L3Byb2MiLCAiL2RldiIsCisgICAgfTsKKworICAgIGZvciAoY29uc3QgQ1N0cmluZyYgcHJlZml4
IDogYmxhY2tsaXN0ZWRQcmVmaXhlcykgeworICAgICAgICBpZiAoZ19zdHJfaGFzX3ByZWZpeChw
YXRoLCBwcmVmaXguZGF0YSgpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogLyoqCiAgKiB3ZWJraXRfd2ViX2NvbnRleHRfYWRkX3Bh
dGhfdG9fc2FuZGJveDoKICAqIEBjb250ZXh0OiBhICNXZWJLaXRXZWJDb250ZXh0CkBAIC0xMTk1
LDYgKzEyMTIsOSBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfc2FuZGJveF9lbmFibGVk
KFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGdib29sZWFuCiAgKiBoYXMgYmVlbiBjcmVhdGVk
IG90aGVyd2lzZSBpdCB3aWxsIGJlIHNpbGVudGx5IGlnbm9yZWQuIEl0IGlzIGEgZmF0YWwgZXJy
b3IgdG8KICAqIGFkZCBwYXRocyBhZnRlciBhIHdlYiBwcm9jZXNzIGhhcyBiZWVuIHNwYXduZWQu
CiAgKgorICogUGF0aHMgaW4gZGlyZWN0b3JpZXMgc3VjaCBhcyBgL3RtcGAsIGAvc3lzYCwgYC9w
cm9jYCwgb3IgYC9kZXZgIGFyZSBub3QgdmFsaWQuCisgKiBZb3UgbWF5IHdhbnQgdG8gdXNlIGAv
dmFyL3RtcGAgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gYC90bXBgLgorICoKICAqIFNlZSBhbHNvIHdl
YmtpdF93ZWJfY29udGV4dF9zZXRfc2FuZGJveF9lbmFibGVkKCkKICAqCiAgKiBTaW5jZTogMi4y
NgpAQCAtMTIwMyw2ICsxMjIzLDcgQEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfYWRkX3BhdGhf
dG9fc2FuZGJveChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGEKIHsKICAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CiAgICAgZ19y
ZXR1cm5faWZfZmFpbChnX3BhdGhfaXNfYWJzb2x1dGUocGF0aCkpOworICAgIGdfcmV0dXJuX2lm
X2ZhaWwocGF0aElzTm90QmxhY2tsaXN0ZWQocGF0aCkpOwogCiAgICAgaWYgKGNvbnRleHQtPnBy
aXYtPnByb2Nlc3NQb29sLT5wcm9jZXNzZXMoKS5zaXplKCkpCiAgICAgICAgIGdfZXJyb3IoIlNh
bmRib3ggcGF0aHMgY2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXIgc3VicHJvY2Vzc2VzIHdlcmUgc3Bh
d25lZC4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373243</attachid>
            <date>2019-07-01 09:55:22 -0700</date>
            <delta_ts>2019-07-01 10:09:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199367-20190701095521.patch</filename>
            <type>text/plain</type>
            <size>2926</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MzllNzY2Mjc3OGNjMmIz
Yzc1YjY0MjY5MWExMDlmYzQ3YzJlODEuLmYxNzIzMjdiMTk5ODIxODc0MjA5NDZmNDM1MTNiNzI1
MmEzMzE3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDctMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBFeHBs
aWNpdGx5IGJsYWNrbGlzdCBwcm9ibGVtYXRpYyBkaXJlY3RvcmllcyBmb3Igc2FuZGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChwYXRoX2lzX25vdF9ibGFj
a2xpc3RlZCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfYWRkX3BhdGhfdG9fc2FuZGJv
eCk6CisKIDIwMTktMDYtMjUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIE5vbi1lZGl0YWJsZSB0ZXh0IHNlbGVjdGlvbnMgc2hvdWxkIGJlIG1vZGlmaWFibGUg
d2l0aCBoYXJkd2FyZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBhNGEwZmVmZTJmOTRiMzVkYmQ0
NThhODFjY2Y1YTMyYzUwNzRjM2FlLi43YjUyYmJmZDI5YWNmNDcwMThkZWYyMDNhMGI3OGVjOTYy
ZDQ0NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTE4NSw2ICsxMTg1LDIyIEBAIHZvaWQgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9zYW5kYm94X2VuYWJsZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
Z2Jvb2xlYW4KICAgICBjb250ZXh0LT5wcml2LT5wcm9jZXNzUG9vbC0+c2V0U2FuZGJveEVuYWJs
ZWQoZW5hYmxlZCk7CiB9CiAKK3N0YXRpYyBib29sIHBhdGhJc05vdEJsYWNrbGlzdGVkKGNvbnN0
IGNoYXIqIHBhdGgpCit7CisgICAgLyogVGhlc2UgYXJlIGJhY2tlbmQgc3BlY2lmaWMgdGhvdWdo
IHRoZSBibGFja2xpc3QgY292ZXJzIGFsbCBmb3IgY29uc2lzdGVudCBzdXBwb3J0ICovCisgICAg
Y29uc3QgVmVjdG9yPENTdHJpbmc+IGJsYWNrbGlzdGVkUHJlZml4ZXMgPSB7CisgICAgICAgICJ0
bXAiLCAvKiBUaGlzIGRvZXNuJ3Qgd29yayB3aXRoIGZsYXRwYWstc3Bhd24gKi8KKyAgICAgICAg
LyogVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIHJlLWNyZWF0ZWQgYnkgdGhlIGJ3cmFwIHNhbmRib3gg
aW4gYm90aCBjYXNlcyBhbmQgZG9uJ3QgbWFrZSBzZW5zZSAqLworICAgICAgICAic3lzIiwgInBy
b2MiLCAiZGV2IiwKKyAgICAgICAgLyogQSB2YWx1ZSBvZiBqdXN0IGAvYCBhbHNvIGRvZXNuJ3Qg
bWFrZSBzZW5zZSAqLworICAgICAgICAiIiwKKyAgICB9OworCisgICAgLyogTk9URTogRHVlIHRv
IHByZXZpb3VzIGNoZWNrIHRoZXJlIGlzIGFsd2F5cyAxIGxlYWRpbmcgYC9gICovCisgICAgR1Vu
aXF1ZVB0cjxjaGFyKj4gc3BsaXRQYXRoKGdfc3Ryc3BsaXQocGF0aCwgIi8iLCAzKSk7CisgICAg
cmV0dXJuIGJsYWNrbGlzdGVkUHJlZml4ZXMuZmluZChzcGxpdFBhdGguZ2V0KClbMV0pID09IFdU
Rjo6bm90Rm91bmQ7Cit9CisKIC8qKgogICogd2Via2l0X3dlYl9jb250ZXh0X2FkZF9wYXRoX3Rv
X3NhbmRib3g6CiAgKiBAY29udGV4dDogYSAjV2ViS2l0V2ViQ29udGV4dApAQCAtMTE5NSw2ICsx
MjExLDkgQEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NhbmRib3hfZW5hYmxlZChXZWJL
aXRXZWJDb250ZXh0KiBjb250ZXh0LCBnYm9vbGVhbgogICogaGFzIGJlZW4gY3JlYXRlZCBvdGhl
cndpc2UgaXQgd2lsbCBiZSBzaWxlbnRseSBpZ25vcmVkLiBJdCBpcyBhIGZhdGFsIGVycm9yIHRv
CiAgKiBhZGQgcGF0aHMgYWZ0ZXIgYSB3ZWIgcHJvY2VzcyBoYXMgYmVlbiBzcGF3bmVkLgogICoK
KyAqIFBhdGhzIGluIGRpcmVjdG9yaWVzIHN1Y2ggYXMgYC90bXBgLCBgL3N5c2AsIGAvcHJvY2As
IGFuZCBgL2RldmAgb3IgYWxsIG9mIGAvYCBhcmUgbm90IHZhbGlkLgorICogWW91IG1heSB3YW50
IHRvIHVzZSBgL3Zhci90bXBgIGFzIGFuIGFsdGVybmF0aXZlIHRvIGAvdG1wYC4KKyAqCiAgKiBT
ZWUgYWxzbyB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NhbmRib3hfZW5hYmxlZCgpCiAgKgogICog
U2luY2U6IDIuMjYKQEAgLTEyMDMsNiArMTIyMiw3IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0
X2FkZF9wYXRoX3RvX3NhbmRib3goV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hh
CiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkp
OwogICAgIGdfcmV0dXJuX2lmX2ZhaWwoZ19wYXRoX2lzX2Fic29sdXRlKHBhdGgpKTsKKyAgICBn
X3JldHVybl9pZl9mYWlsKHBhdGhJc05vdEJsYWNrbGlzdGVkKHBhdGgpKTsKIAogICAgIGlmIChj
b250ZXh0LT5wcml2LT5wcm9jZXNzUG9vbC0+cHJvY2Vzc2VzKCkuc2l6ZSgpKQogICAgICAgICBn
X2Vycm9yKCJTYW5kYm94IHBhdGhzIGNhbm5vdCBiZSBjaGFuZ2VkIGFmdGVyIHN1YnByb2Nlc3Nl
cyB3ZXJlIHNwYXduZWQuIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373244</attachid>
            <date>2019-07-01 10:09:34 -0700</date>
            <delta_ts>2019-07-01 13:23:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199367-20190701100934.patch</filename>
            <type>text/plain</type>
            <size>2940</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MzllNzY2Mjc3OGNjMmIz
Yzc1YjY0MjY5MWExMDlmYzQ3YzJlODEuLmYxNzIzMjdiMTk5ODIxODc0MjA5NDZmNDM1MTNiNzI1
MmEzMzE3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDctMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBFeHBs
aWNpdGx5IGJsYWNrbGlzdCBwcm9ibGVtYXRpYyBkaXJlY3RvcmllcyBmb3Igc2FuZGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChwYXRoX2lzX25vdF9ibGFj
a2xpc3RlZCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfYWRkX3BhdGhfdG9fc2FuZGJv
eCk6CisKIDIwMTktMDYtMjUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIE5vbi1lZGl0YWJsZSB0ZXh0IHNlbGVjdGlvbnMgc2hvdWxkIGJlIG1vZGlmaWFibGUg
d2l0aCBoYXJkd2FyZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBhNGEwZmVmZTJmOTRiMzVkYmQ0
NThhODFjY2Y1YTMyYzUwNzRjM2FlLi43OGQ1MDllOTUwN2EzZWNiNjczNmJjN2U3YzE0MWViMWNm
NWRlNmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTE4NSw2ICsxMTg1LDIyIEBAIHZvaWQgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9zYW5kYm94X2VuYWJsZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
Z2Jvb2xlYW4KICAgICBjb250ZXh0LT5wcml2LT5wcm9jZXNzUG9vbC0+c2V0U2FuZGJveEVuYWJs
ZWQoZW5hYmxlZCk7CiB9CiAKK3N0YXRpYyBib29sIHBhdGhJc05vdEJsYWNrbGlzdGVkKGNvbnN0
IGNoYXIqIHBhdGgpCit7CisgICAgLyogVGhlc2UgYXJlIGJhY2tlbmQgc3BlY2lmaWMgdGhvdWdo
IHRoZSBibGFja2xpc3QgY292ZXJzIGFsbCBmb3IgY29uc2lzdGVudCBzdXBwb3J0ICovCisgICAg
Y29uc3QgVmVjdG9yPENTdHJpbmc+IGJsYWNrbGlzdGVkUHJlZml4ZXMgPSB7CisgICAgICAgICJ0
bXAiLCAvKiBUaGlzIGRvZXNuJ3Qgd29yayB3aXRoIGZsYXRwYWstc3Bhd24gKi8KKyAgICAgICAg
LyogVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIHJlLWNyZWF0ZWQgYnkgdGhlIGJ3cmFwIHNhbmRib3gg
aW4gYm90aCBjYXNlcyBhbmQgZG9uJ3QgbWFrZSBzZW5zZSAqLworICAgICAgICAic3lzIiwgInBy
b2MiLCAiZGV2IiwKKyAgICAgICAgLyogQSB2YWx1ZSBvZiBqdXN0IGAvYCBhbHNvIGRvZXNuJ3Qg
bWFrZSBzZW5zZSAqLworICAgICAgICAiIiwKKyAgICB9OworCisgICAgLyogTk9URTogRHVlIHRv
IHByZXZpb3VzIGNoZWNrIHRoZXJlIGlzIGFsd2F5cyAxIGxlYWRpbmcgYC9gICovCisgICAgR1Vu
aXF1ZVB0cjxjaGFyKj4gc3BsaXRQYXRoKGdfc3Ryc3BsaXQocGF0aCwgR19ESVJfU0VQQVJBVE9S
X1MsIDMpKTsKKyAgICByZXR1cm4gYmxhY2tsaXN0ZWRQcmVmaXhlcy5maW5kKHNwbGl0UGF0aC5n
ZXQoKVsxXSkgPT0gV1RGOjpub3RGb3VuZDsKK30KKwogLyoqCiAgKiB3ZWJraXRfd2ViX2NvbnRl
eHRfYWRkX3BhdGhfdG9fc2FuZGJveDoKICAqIEBjb250ZXh0OiBhICNXZWJLaXRXZWJDb250ZXh0
CkBAIC0xMTk1LDYgKzEyMTEsOSBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfc2FuZGJv
eF9lbmFibGVkKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGdib29sZWFuCiAgKiBoYXMgYmVl
biBjcmVhdGVkIG90aGVyd2lzZSBpdCB3aWxsIGJlIHNpbGVudGx5IGlnbm9yZWQuIEl0IGlzIGEg
ZmF0YWwgZXJyb3IgdG8KICAqIGFkZCBwYXRocyBhZnRlciBhIHdlYiBwcm9jZXNzIGhhcyBiZWVu
IHNwYXduZWQuCiAgKgorICogUGF0aHMgaW4gZGlyZWN0b3JpZXMgc3VjaCBhcyBgL3RtcGAsIGAv
c3lzYCwgYC9wcm9jYCwgYW5kIGAvZGV2YCBvciBhbGwgb2YgYC9gIGFyZSBub3QgdmFsaWQuCisg
KiBZb3UgbWF5IHdhbnQgdG8gdXNlIGAvdmFyL3RtcGAgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gYC90
bXBgLgorICoKICAqIFNlZSBhbHNvIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfc2FuZGJveF9lbmFi
bGVkKCkKICAqCiAgKiBTaW5jZTogMi4yNgpAQCAtMTIwMyw2ICsxMjIyLDcgQEAgdm9pZCB3ZWJr
aXRfd2ViX2NvbnRleHRfYWRkX3BhdGhfdG9fc2FuZGJveChXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBjaGEKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09O
VEVYVChjb250ZXh0KSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChnX3BhdGhfaXNfYWJzb2x1dGUo
cGF0aCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwocGF0aElzTm90QmxhY2tsaXN0ZWQocGF0aCkp
OwogCiAgICAgaWYgKGNvbnRleHQtPnByaXYtPnByb2Nlc3NQb29sLT5wcm9jZXNzZXMoKS5zaXpl
KCkpCiAgICAgICAgIGdfZXJyb3IoIlNhbmRib3ggcGF0aHMgY2Fubm90IGJlIGNoYW5nZWQgYWZ0
ZXIgc3VicHJvY2Vzc2VzIHdlcmUgc3Bhd25lZC4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373250</attachid>
            <date>2019-07-01 13:23:30 -0700</date>
            <delta_ts>2019-07-02 11:57:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199367-20190701132330.patch</filename>
            <type>text/plain</type>
            <size>3022</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MzllNzY2Mjc3OGNjMmIz
Yzc1YjY0MjY5MWExMDlmYzQ3YzJlODEuLmYxNzIzMjdiMTk5ODIxODc0MjA5NDZmNDM1MTNiNzI1
MmEzMzE3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDctMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBFeHBs
aWNpdGx5IGJsYWNrbGlzdCBwcm9ibGVtYXRpYyBkaXJlY3RvcmllcyBmb3Igc2FuZGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChwYXRoX2lzX25vdF9ibGFj
a2xpc3RlZCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfYWRkX3BhdGhfdG9fc2FuZGJv
eCk6CisKIDIwMTktMDYtMjUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIE5vbi1lZGl0YWJsZSB0ZXh0IHNlbGVjdGlvbnMgc2hvdWxkIGJlIG1vZGlmaWFibGUg
d2l0aCBoYXJkd2FyZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBhNGEwZmVmZTJmOTRiMzVkYmQ0
NThhODFjY2Y1YTMyYzUwNzRjM2FlLi44ZjEzODljZWQ3NGQ5ZTM1NzgwOWExNjc1YmNlNDIwMzM4
YzUwYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTE4NSw2ICsxMTg1LDIyIEBAIHZvaWQgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9zYW5kYm94X2VuYWJsZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
Z2Jvb2xlYW4KICAgICBjb250ZXh0LT5wcml2LT5wcm9jZXNzUG9vbC0+c2V0U2FuZGJveEVuYWJs
ZWQoZW5hYmxlZCk7CiB9CiAKK3N0YXRpYyBib29sIHBhdGhJc0JsYWNrbGlzdGVkKGNvbnN0IGNo
YXIqIHBhdGgpCit7CisgICAgLyogVGhlc2UgYXJlIGJhY2tlbmQgc3BlY2lmaWMgdGhvdWdoIHRo
ZSBibGFja2xpc3QgY292ZXJzIGFsbCBmb3IgY29uc2lzdGVudCBzdXBwb3J0ICovCisgICAgY29u
c3QgVmVjdG9yPENTdHJpbmc+IGJsYWNrbGlzdGVkUHJlZml4ZXMgPSB7CisgICAgICAgICJ0bXAi
LCAvKiBUaGlzIGRvZXNuJ3Qgd29yayB3aXRoIGZsYXRwYWstc3Bhd24gKi8KKyAgICAgICAgLyog
VGhlIHJlc3Qgb2YgdGhlc2UgYXJlIHJlLWNyZWF0ZWQgYnkgdGhlIGJ3cmFwIHNhbmRib3ggaW4g
Ym90aCBjYXNlcyBhbmQgZG9uJ3QgbWFrZSBzZW5zZSAqLworICAgICAgICAic3lzIiwgInByb2Mi
LCAiZGV2IiwKKyAgICAgICAgLyogQSB2YWx1ZSBvZiBqdXN0IGAvYCBhbHNvIGRvZXNuJ3QgbWFr
ZSBzZW5zZSAqLworICAgICAgICAiIiwKKyAgICB9OworCisgICAgLyogTk9URTogRHVlIHRvIHBy
ZXZpb3VzIGNoZWNrIHRoZXJlIGlzIGFsd2F5cyBvbmUgbGVhZGluZyBgL2AgKi8KKyAgICBHVW5p
cXVlUHRyPGNoYXIqPiBzcGxpdFBhdGgoZ19zdHJzcGxpdChwYXRoLCBHX0RJUl9TRVBBUkFUT1Jf
UywgMykpOworICAgIHJldHVybiBibGFja2xpc3RlZFByZWZpeGVzLmZpbmQoc3BsaXRQYXRoLmdl
dCgpWzFdKSAhPSBXVEY6Om5vdEZvdW5kOworfQorCiAvKioKICAqIHdlYmtpdF93ZWJfY29udGV4
dF9hZGRfcGF0aF90b19zYW5kYm94OgogICogQGNvbnRleHQ6IGEgI1dlYktpdFdlYkNvbnRleHQK
QEAgLTExOTUsNiArMTIxMSw5IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9zYW5kYm94
X2VuYWJsZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgZ2Jvb2xlYW4KICAqIGhhcyBiZWVu
IGNyZWF0ZWQgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgc2lsZW50bHkgaWdub3JlZC4gSXQgaXMgYSBm
YXRhbCBlcnJvciB0bwogICogYWRkIHBhdGhzIGFmdGVyIGEgd2ViIHByb2Nlc3MgaGFzIGJlZW4g
c3Bhd25lZC4KICAqCisgKiBQYXRocyBpbiBkaXJlY3RvcmllcyBzdWNoIGFzIGAvdG1wYCwgYC9z
eXNgLCBgL3Byb2NgLCBhbmQgYC9kZXZgIG9yIGFsbCBvZiBgL2AgYXJlIG5vdCB2YWxpZC4KKyAq
IFlvdSBtYXkgd2FudCB0byB1c2UgYC92YXIvdG1wYCBhcyBhbiBhbHRlcm5hdGl2ZSB0byBgL3Rt
cGAuCisgKgogICogU2VlIGFsc28gd2Via2l0X3dlYl9jb250ZXh0X3NldF9zYW5kYm94X2VuYWJs
ZWQoKQogICoKICAqIFNpbmNlOiAyLjI2CkBAIC0xMjA0LDYgKzEyMjMsMTEgQEAgdm9pZCB3ZWJr
aXRfd2ViX2NvbnRleHRfYWRkX3BhdGhfdG9fc2FuZGJveChXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBjaGEKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVY
VChjb250ZXh0KSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChnX3BhdGhfaXNfYWJzb2x1dGUocGF0
aCkpOwogCisgICAgaWYgKHBhdGhJc0JsYWNrbGlzdGVkKHBhdGgpKSB7CisgICAgICAgIGdfY3Jp
dGljYWwoIlBhdGggYWRkZWQgdG8gc2FuZGJveCBpcyBibGFja2xpc3RlZCAoJXMpIiwgcGF0aCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoY29udGV4dC0+cHJpdi0+cHJvY2Vz
c1Bvb2wtPnByb2Nlc3NlcygpLnNpemUoKSkKICAgICAgICAgZ19lcnJvcigiU2FuZGJveCBwYXRo
cyBjYW5ub3QgYmUgY2hhbmdlZCBhZnRlciBzdWJwcm9jZXNzZXMgd2VyZSBzcGF3bmVkLiIpOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373349</attachid>
            <date>2019-07-02 11:57:37 -0700</date>
            <delta_ts>2019-07-02 16:05:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199367-20190702115737.patch</filename>
            <type>text/plain</type>
            <size>3033</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MzllNzY2Mjc3OGNjMmIz
Yzc1YjY0MjY5MWExMDlmYzQ3YzJlODEuLjU5ZDJmZGQzZDViYjZlMGU5MjU1ODE2NDQ4NWUwYzUy
OTVlYmY2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDctMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBFeHBs
aWNpdGx5IGJsYWNrbGlzdCBwcm9ibGVtYXRpYyBkaXJlY3RvcmllcyBmb3Igc2FuZGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHNv
bWUgZGlyZWN0b3JpZXMgdGhhdCBzaW1wbHkgZG8gbm90IG1ha2Ugc2Vuc2UgdG8gYmluZCBpbnRv
IHRoZSBzYW5kYm94CisgICAgICAgIGFuZCB3aWxsIG9ubHkgY2F1c2UgaXNzdWVzIHN1Y2ggYXMg
YC9wcm9jYCBzbyBsZXRzIGp1c3QgYmxvY2sgdGhlbS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHBhdGhfaXNfbm90X2JsYWNr
bGlzdGVkKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9hZGRfcGF0aF90b19zYW5kYm94
KToKKwogMjAxOS0wNi0yNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgTm9uLWVkaXRhYmxlIHRleHQgc2VsZWN0aW9ucyBzaG91bGQgYmUgbW9kaWZpYWJsZSB3
aXRoIGhhcmR3YXJlIGtleWJvYXJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGE0YTBmZWZlMmY5NGIzNWRiZDQ1
OGE4MWNjZjVhMzJjNTA3NGMzYWUuLmJmYzU2N2NlZDViYjE3MDFkM2FjOTI3NjdhZWJhYTQyZGIy
YzM5N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFdlYkNvbnRleHQuY3BwCkBAIC0xMTg1LDYgKzExODUsMjEgQEAgdm9pZCB3ZWJraXRfd2Vi
X2NvbnRleHRfc2V0X3NhbmRib3hfZW5hYmxlZChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBn
Ym9vbGVhbgogICAgIGNvbnRleHQtPnByaXYtPnByb2Nlc3NQb29sLT5zZXRTYW5kYm94RW5hYmxl
ZChlbmFibGVkKTsKIH0KIAorc3RhdGljIGJvb2wgcGF0aElzQmxhY2tsaXN0ZWQoY29uc3QgY2hh
ciogcGF0aCkKK3sKKyAgICBzdGF0aWMgY29uc3QgVmVjdG9yPENTdHJpbmcsIDQ+IGJsYWNrbGlz
dGVkUHJlZml4ZXMgPSB7CisgICAgICAgIC8vIFRoZXNlIGFyZSByZWNyZWF0ZWQgYnkgYndyYXAg
YW5kIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byB0cnkgYW5kIHJlYmluZCB0aGVtLgorICAgICAg
ICAic3lzIiwgInByb2MiLCAiZGV2IiwKKyAgICAgICAgIiIsIC8vIEFsbCBvZiBgL2AgaXNuJ3Qg
YWNjZXB0YWJsZS4KKyAgICB9OworCisgICAgaWYgKCFnX3BhdGhfaXNfYWJzb2x1dGUocGF0aCkp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgR1VuaXF1ZVB0cjxjaGFyKj4gc3BsaXRQYXRo
KGdfc3Ryc3BsaXQocGF0aCwgR19ESVJfU0VQQVJBVE9SX1MsIDMpKTsKKyAgICByZXR1cm4gYmxh
Y2tsaXN0ZWRQcmVmaXhlcy5jb250YWlucyhzcGxpdFBhdGguZ2V0KClbMV0pOworfQorCiAvKioK
ICAqIHdlYmtpdF93ZWJfY29udGV4dF9hZGRfcGF0aF90b19zYW5kYm94OgogICogQGNvbnRleHQ6
IGEgI1dlYktpdFdlYkNvbnRleHQKQEAgLTExOTUsNiArMTIxMCw5IEBAIHZvaWQgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9zYW5kYm94X2VuYWJsZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
Z2Jvb2xlYW4KICAqIGhhcyBiZWVuIGNyZWF0ZWQgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgc2lsZW50
bHkgaWdub3JlZC4gSXQgaXMgYSBmYXRhbCBlcnJvciB0bwogICogYWRkIHBhdGhzIGFmdGVyIGEg
d2ViIHByb2Nlc3MgaGFzIGJlZW4gc3Bhd25lZC4KICAqCisgKiBQYXRocyBpbiBkaXJlY3Rvcmll
cyBzdWNoIGFzIGAvc3lzYCwgYC9wcm9jYCwgYW5kIGAvZGV2YCBvciBhbGwgb2YgYC9gCisgKiBh
cmUgbm90IHZhbGlkLgorICoKICAqIFNlZSBhbHNvIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfc2Fu
ZGJveF9lbmFibGVkKCkKICAqCiAgKiBTaW5jZTogMi4yNgpAQCAtMTIwMiw3ICsxMjIwLDExIEBA
IHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9zYW5kYm94X2VuYWJsZWQoV2ViS2l0V2ViQ29u
dGV4dCogY29udGV4dCwgZ2Jvb2xlYW4KIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2FkZF9wYXRo
X3RvX3NhbmRib3goV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hhciogcGF0aCwg
Z2Jvb2xlYW4gcmVhZE9ubHkpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VC
X0NPTlRFWFQoY29udGV4dCkpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoZ19wYXRoX2lzX2Fic29s
dXRlKHBhdGgpKTsKKworICAgIGlmIChwYXRoSXNCbGFja2xpc3RlZChwYXRoKSkgeworICAgICAg
ICBnX2NyaXRpY2FsKCJBdHRlbXB0ZWQgdG8gYWRkIGRpc2FsbG93ZWQgcGF0aCB0byBzYW5kYm94
OiAlcyIsIHBhdGgpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKGNvbnRleHQt
PnByaXYtPnByb2Nlc3NQb29sLT5wcm9jZXNzZXMoKS5zaXplKCkpCiAgICAgICAgIGdfZXJyb3Io
IlNhbmRib3ggcGF0aHMgY2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXIgc3VicHJvY2Vzc2VzIHdlcmUg
c3Bhd25lZC4iKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>