<?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>176803</bug_id>
          
          <creation_ts>2017-09-12 13:22:42 -0700</creation_ts>
          <short_desc>[SOUP] Check length before calling soup_message_body_append_buffer.</short_desc>
          <delta_ts>2018-08-20 02:29:10 -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>Other</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>Ms2ger</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1348014</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-12 13:22:42 -0700</bug_when>
    <thetext>Since enabling fatal criticals for layout tests, test http/tests/local/blob/send-hybrid-blob-using-open-panel.html has been crashing somewhere in the network process (there is no backtrace unfortunately) with libsoup-CRITICAL **: soup_message_body_append_buffer: assertion &apos;buffer-&gt;length &gt; 0&apos; failed. Updating expectations accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448718</commentid>
    <comment_count>1</comment_count>
      <attachid>346763</attachid>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2018-08-08 03:16:28 -0700</bug_when>
    <thetext>Created attachment 346763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448720</commentid>
    <comment_count>2</comment_count>
      <attachid>346763</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-08 03:27:01 -0700</bug_when>
    <thetext>Comment on attachment 346763
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [SOUP] Check length before calling soup_message_body_append_buffer.

Use the bug title here, either change it here or change the bug title.

&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:54
&gt; +            if (soupBuffer-&gt;length)

The thing is, is this expected to be 0, or is it 0 because of another bug? I&apos;m afraid we might be hiding the actual bug with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448722</commentid>
    <comment_count>3</comment_count>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2018-08-08 03:45:18 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #2)
&gt; Comment on attachment 346763 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=346763&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        [SOUP] Check length before calling soup_message_body_append_buffer.
&gt; 
&gt; Use the bug title here, either change it here or change the bug title.

Done.

&gt; &gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:54
&gt; &gt; +            if (soupBuffer-&gt;length)
&gt; 
&gt; The thing is, is this expected to be 0, or is it 0 because of another bug?
&gt; I&apos;m afraid we might be hiding the actual bug with this patch.

I think ending up with an empty buffer here is just the logical result of reading an empty file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448727</commentid>
    <comment_count>4</comment_count>
      <attachid>346763</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-08 03:58:06 -0700</bug_when>
    <thetext>Comment on attachment 346763
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:54
&gt;&gt;&gt; +            if (soupBuffer-&gt;length)
&gt;&gt; 
&gt;&gt; The thing is, is this expected to be 0, or is it 0 because of another bug? I&apos;m afraid we might be hiding the actual bug with this patch.
&gt; 
&gt; I think ending up with an empty buffer here is just the logical result of reading an empty file.

It make sense. If it&apos;s expected, then I guess there&apos;s no point in creating an empty SoupBuffer just to check that is empty. I think we could do something like:

if (blobItem.length() == BlobDataItem::toEndOfFile)
    return 0;

GUniquePtr&lt;SoupBuffer&gt; soupBuffer(buffer-&gt;createSoupBuffer(blobItem.offset(), blobItem.length()));
soup_message_body_append_buffer(soupMessage-&gt;request_body, soupBuffer.get());
return soupBuffer-&gt;length;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448744</commentid>
    <comment_count>5</comment_count>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2018-08-08 07:37:47 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #4)
&gt; Comment on attachment 346763 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=346763&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:54
&gt; &gt;&gt;&gt; +            if (soupBuffer-&gt;length)
&gt; &gt;&gt; 
&gt; &gt;&gt; The thing is, is this expected to be 0, or is it 0 because of another bug? I&apos;m afraid we might be hiding the actual bug with this patch.
&gt; &gt; 
&gt; &gt; I think ending up with an empty buffer here is just the logical result of reading an empty file.
&gt; 
&gt; It make sense. If it&apos;s expected, then I guess there&apos;s no point in creating
&gt; an empty SoupBuffer just to check that is empty. I think we could do
&gt; something like:
&gt; 
&gt; if (blobItem.length() == BlobDataItem::toEndOfFile)
&gt;     return 0;
&gt; 
&gt; GUniquePtr&lt;SoupBuffer&gt;
&gt; soupBuffer(buffer-&gt;createSoupBuffer(blobItem.offset(), blobItem.length()));
&gt; soup_message_body_append_buffer(soupMessage-&gt;request_body, soupBuffer.get());
&gt; return soupBuffer-&gt;length;

That&apos;s not what a zero size argument to createSoupBuffer means; it uses

&gt; size ? size : this-&gt;size()

for some odd reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448965</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-08 23:48:15 -0700</bug_when>
    <thetext>(In reply to Ms2ger from comment #5)
&gt; (In reply to Carlos Garcia Campos from comment #4)
&gt; &gt; Comment on attachment 346763 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=346763&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:54
&gt; &gt; &gt;&gt;&gt; +            if (soupBuffer-&gt;length)
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; The thing is, is this expected to be 0, or is it 0 because of another bug? I&apos;m afraid we might be hiding the actual bug with this patch.
&gt; &gt; &gt; 
&gt; &gt; &gt; I think ending up with an empty buffer here is just the logical result of reading an empty file.
&gt; &gt; 
&gt; &gt; It make sense. If it&apos;s expected, then I guess there&apos;s no point in creating
&gt; &gt; an empty SoupBuffer just to check that is empty. I think we could do
&gt; &gt; something like:
&gt; &gt; 
&gt; &gt; if (blobItem.length() == BlobDataItem::toEndOfFile)
&gt; &gt;     return 0;
&gt; &gt; 
&gt; &gt; GUniquePtr&lt;SoupBuffer&gt;
&gt; &gt; soupBuffer(buffer-&gt;createSoupBuffer(blobItem.offset(), blobItem.length()));
&gt; &gt; soup_message_body_append_buffer(soupMessage-&gt;request_body, soupBuffer.get());
&gt; &gt; return soupBuffer-&gt;length;
&gt; 
&gt; That&apos;s not what a zero size argument to createSoupBuffer means; it uses
&gt; 
&gt; &gt; size ? size : this-&gt;size()
&gt; 
&gt; for some odd reason.

This is because you can create a sub-buffer, that&apos;s why it receives an offset and a size. If the size is 0, then the actual buffer size is used. This was added before std::optional. In this case, if the file is empty the buffer size will be 0 in any case. We can change the condition to:

if (buffer-&gt;isEmpty())
    return 0;

That way we are actually checking that it&apos;s an empty file. Previous check was indeed wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451555</commentid>
    <comment_count>7</comment_count>
      <attachid>347488</attachid>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2018-08-20 01:53:07 -0700</bug_when>
    <thetext>Created attachment 347488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451559</commentid>
    <comment_count>8</comment_count>
      <attachid>347488</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-20 02:29:08 -0700</bug_when>
    <thetext>Comment on attachment 347488
Patch

Clearing flags on attachment: 347488

Committed r235026: &lt;https://trac.webkit.org/changeset/235026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451560</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-20 02:29:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346763</attachid>
            <date>2018-08-08 03:16:28 -0700</date>
            <delta_ts>2018-08-20 01:53:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176803-20180808121627.patch</filename>
            <type>text/plain</type>
            <size>4084</size>
            <attacher name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZlZjYzOTBhN2IzOTFh
OWE3ZjVkZDdjYmI1NjgwMjFlZDVlZTRhZC4uYWFiM2QwN2MwMTFhYzgwMTk0OWIxMGNmNGUxMzVi
YmU5ZWE2NTg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA4LTA4ICBNczJn
ZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gQ2hlY2sgbGVuZ3RoIGJl
Zm9yZSBjYWxsaW5nIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZmZXIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY4MDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZnVuY3Rpb24gaGFzIGEg
cHJlY29uZGl0aW9uIHRoYXQgdGhlIGJ1ZmZlciBpcyBub24tZW1wdHkuCisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtaHlicmlkLWJsb2ItdXNpbmctb3Blbi1wYW5l
bC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0
U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRFbmNvZGVkQmxvYkl0ZW1Ub1NvdXBN
ZXNzYWdlQm9keSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNv
dXBNZXNzYWdlQm9keSBjb25zdCk6CisKIDIwMTgtMDctMjggIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVXBkYXRlIG1vcmUgV2ViQ29yZSBPYmplY3Rp
dmUtQyBjb2RlIHRvIGJlIEFSQyBjb21wYXRpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5k
ZXggMjI2YWVlOWYwMGViYTQ2YWNmZTMwM2Q3NGQ2ZGExODJjNzJjN2ViNS4uY2U5MDE0ZWE5OGQ1
OWVkZGZiYmQxZTI2ZGM2MGMyZjRhMjljNmZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApA
QCAtNTEsNyArNTEsOCBAQCBzdGF0aWMgdWludDY0X3QgYXBwZW5kRW5jb2RlZEJsb2JJdGVtVG9T
b3VwTWVzc2FnZUJvZHkoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLAogCiAgICAgICAgIGlmIChS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250
ZW50c09mRmlsZShibG9iSXRlbS5maWxlKCktPnBhdGgoKSkpIHsKICAgICAgICAgICAgIEdVbmlx
dWVQdHI8U291cEJ1ZmZlcj4gc291cEJ1ZmZlcihidWZmZXItPmNyZWF0ZVNvdXBCdWZmZXIoYmxv
Ykl0ZW0ub2Zmc2V0KCksIGJsb2JJdGVtLmxlbmd0aCgpID09IEJsb2JEYXRhSXRlbTo6dG9FbmRP
ZkZpbGUgPyAwIDogYmxvYkl0ZW0ubGVuZ3RoKCkpKTsKLSAgICAgICAgICAgIHNvdXBfbWVzc2Fn
ZV9ib2R5X2FwcGVuZF9idWZmZXIoc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwgc291cEJ1ZmZl
ci5nZXQoKSk7CisgICAgICAgICAgICBpZiAoc291cEJ1ZmZlci0+bGVuZ3RoKQorICAgICAgICAg
ICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZmZXIoc291cE1lc3NhZ2UtPnJlcXVl
c3RfYm9keSwgc291cEJ1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc291cEJ1ZmZl
ci0+bGVuZ3RoOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtNzksNyArODAsOCBAQCB2
b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2VCb2R5KFNvdXBNZXNzYWdlKiBz
b3VwTWVzc2FnZSkgY29uc3QKICAgICAgICAgICAgIGlmIChSZWZQdHI8U2hhcmVkQnVmZmVyPiBi
dWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShlbGVtZW50Lm1f
ZmlsZW5hbWUpKSB7CiAgICAgICAgICAgICAgICAgR1VuaXF1ZVB0cjxTb3VwQnVmZmVyPiBzb3Vw
QnVmZmVyKGJ1ZmZlci0+Y3JlYXRlU291cEJ1ZmZlcigpKTsKICAgICAgICAgICAgICAgICBib2R5
U2l6ZSArPSBidWZmZXItPnNpemUoKTsKLSAgICAgICAgICAgICAgICBzb3VwX21lc3NhZ2VfYm9k
eV9hcHBlbmRfYnVmZmVyKHNvdXBNZXNzYWdlLT5yZXF1ZXN0X2JvZHksIHNvdXBCdWZmZXIuZ2V0
KCkpOworICAgICAgICAgICAgICAgIGlmIChzb3VwQnVmZmVyLT5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZmZXIoc291cE1lc3NhZ2UtPnJl
cXVlc3RfYm9keSwgc291cEJ1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBGb3JtRGF0YUVsZW1lbnQ6OlR5cGU6OkVuY29kZWRCbG9i
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGRhY2MyNDc1MzQ0MTM1ZmIzZDI4ZDMwYzM0ZWY4NDk4YjgxNWNhODQuLjlkMDll
NWRhODI5NmU1Yzg0MTIyMTM0YmY1Yzc2NGYxZGI4ODM5YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxOC0wOC0wOCAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1NP
VVBdIENoZWNrIGxlbmd0aCBiZWZvcmUgY2FsbGluZyBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmRf
YnVmZmVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc2ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIHRlc3QuCisKIDIwMTgtMDct
MjkgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgogCiAgICAgICAgIFtD
dXJsXSBUZXN0IGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCAzNTQ4YjY2NWQxZmQ0Njc5ODUwYmQ4Zjk3NmU5NGIxODlkMjI0NzNjLi4zZWE2
ZmVlNDUzYzI1OTM1MzA1YTAxYzRhYzFjNTAzMWEyYjViNjJmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI5Nyw4ICsxMjk3LDYgQEAgd2Via2l0Lm9y
Zy9iLzE3Mjk1NSBtZWRpYS92aWRlby1wcmVsb2FkLmh0bWwgWyBDcmFzaCBQYXNzIF0KIAogd2Vi
a2l0Lm9yZy9iLzE3NTU3NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9w
bGF5LXdpdGgtc2xvdy10ZXh0LXRyYWNrcy5odG1sIFsgQ3Jhc2ggUGFzcyBdCiAKLXdlYmtpdC5v
cmcvYi8xNzY4MDMgaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtaHlicmlkLWJsb2ItdXNpbmct
b3Blbi1wYW5lbC5odG1sIFsgQ3Jhc2ggXQotCiAjIFNlZSBhbHNvIHdlYmtpdC5vcmcvYi8xNDE2
OTkKIHdlYmtpdC5vcmcvYi8xNzc1MzQgZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtcmVzcGVj
dHMtY3NzLXNpemUuaHRtbCBbIENyYXNoIEltYWdlT25seUZhaWx1cmUgXQogIyBTZWUgYWxzbyB3
ZWJraXQub3JnL2IvMTYzNTI4IFRocmVhZGVkIGNvbXBvc2l0b3IgZmFpbHVyZXMgY2F1c2VkIGJ5
IG9uZSBvZiByMjAzNDk2LCByMjAzNDk3LCBvciByMjAzNDk4Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347488</attachid>
            <date>2018-08-20 01:53:07 -0700</date>
            <delta_ts>2018-08-20 02:29:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176803-20180820105306.patch</filename>
            <type>text/plain</type>
            <size>4348</size>
            <attacher name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEwNjI0Nzk2OTY1Zjk0
NjA2ZjU5Y2M4Yzc4ZjZkMDNjOGQwYzJjYi4uYmU3NTRlMWRlZmMxZDBkNWYyZGU4ZjA2NDA2NmQ4
NTc1NjczZTBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA4LTIwICBNczJn
ZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gQ2hlY2sgbGVuZ3RoIGJl
Zm9yZSBjYWxsaW5nIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZmZXIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY4MDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZnVuY3Rpb24gaGFzIGEg
cHJlY29uZGl0aW9uIHRoYXQgdGhlIGJ1ZmZlciBpcyBub24tZW1wdHkuCisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtaHlicmlkLWJsb2ItdXNpbmctb3Blbi1wYW5l
bC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0
U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRFbmNvZGVkQmxvYkl0ZW1Ub1NvdXBN
ZXNzYWdlQm9keSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNv
dXBNZXNzYWdlQm9keSBjb25zdCk6CisKIDIwMTgtMDgtMTkgIFl1c3VrZSBTdXp1a2kgIDx5dXN1
a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBTaHJpbmsgc2l6ZSBvZiBXZWJDb3Jl
OjpFdmVudCBmdXJ0aGVyIGJ5IHJlb3JkZXJpbmcgbWVtYmVycwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAu
Y3BwCmluZGV4IDIyNmFlZTlmMDBlYmE0NmFjZmUzMDNkNzRkNmRhMTgyYzcyYzdlYjUuLjlmYjcy
YmRiZjc0MjI3YzAwNTc3MzlhMjRhZjY3NmE3NGQ3ZjU3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291
cC5jcHAKQEAgLTUwLDggKzUwLDEyIEBAIHN0YXRpYyB1aW50NjRfdCBhcHBlbmRFbmNvZGVkQmxv
Ykl0ZW1Ub1NvdXBNZXNzYWdlQm9keShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsCiAgICAgICAg
ICAgICByZXR1cm4gMDsKIAogICAgICAgICBpZiAoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoYmxvYkl0ZW0uZmlsZSgp
LT5wYXRoKCkpKSB7CisgICAgICAgICAgICBpZiAoYnVmZmVyLT5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CisKICAgICAgICAgICAgIEdVbmlxdWVQdHI8U291cEJ1ZmZlcj4g
c291cEJ1ZmZlcihidWZmZXItPmNyZWF0ZVNvdXBCdWZmZXIoYmxvYkl0ZW0ub2Zmc2V0KCksIGJs
b2JJdGVtLmxlbmd0aCgpID09IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUgPyAwIDogYmxvYkl0
ZW0ubGVuZ3RoKCkpKTsKLSAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZm
ZXIoc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwgc291cEJ1ZmZlci5nZXQoKSk7CisgICAgICAg
ICAgICBpZiAoc291cEJ1ZmZlci0+bGVuZ3RoKQorICAgICAgICAgICAgICAgIHNvdXBfbWVzc2Fn
ZV9ib2R5X2FwcGVuZF9idWZmZXIoc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwgc291cEJ1ZmZl
ci5nZXQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc291cEJ1ZmZlci0+bGVuZ3RoOwogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwpAQCAtNzcsOSArODEsMTMgQEAgdm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OnVwZGF0ZVNvdXBNZXNzYWdlQm9keShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpIGNvbnN0
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGb3JtRGF0YUVsZW1lbnQ6OlR5cGU6
OkVuY29kZWRGaWxlOgogICAgICAgICAgICAgaWYgKFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKGVsZW1lbnQubV9maWxl
bmFtZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmZmVyLT5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgICAgICAgICAgR1VuaXF1ZVB0cjxTb3VwQnVm
ZmVyPiBzb3VwQnVmZmVyKGJ1ZmZlci0+Y3JlYXRlU291cEJ1ZmZlcigpKTsKICAgICAgICAgICAg
ICAgICBib2R5U2l6ZSArPSBidWZmZXItPnNpemUoKTsKLSAgICAgICAgICAgICAgICBzb3VwX21l
c3NhZ2VfYm9keV9hcHBlbmRfYnVmZmVyKHNvdXBNZXNzYWdlLT5yZXF1ZXN0X2JvZHksIHNvdXBC
dWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIGlmIChzb3VwQnVmZmVyLT5sZW5ndGgpCisg
ICAgICAgICAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZmZXIoc291cE1l
c3NhZ2UtPnJlcXVlc3RfYm9keSwgc291cEJ1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGb3JtRGF0YUVsZW1lbnQ6OlR5cGU6OkVu
Y29kZWRCbG9iOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDNhYzI0YzM2M2RjNzRlZTlkZDJjN2RmMzA0MjVkNTVjYjY1YzYz
MjYuLmVlNDY4ZTI5NTg2MjlkZGFlZjkxM2NmZjZiNTUxM2VhODNmZGI0N2EgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0wOC0yMCAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW1NPVVBdIENoZWNrIGxlbmd0aCBiZWZvcmUgY2FsbGluZyBzb3VwX21lc3NhZ2VfYm9k
eV9hcHBlbmRfYnVmZmVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc2ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIHRlc3QuCisK
IDIwMTgtMDgtMTggIEFsaSBKdW1hICA8YWp1bWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtJ
bnRlcnNlY3Rpb25PYnNlcnZlcl0gRmlyZSBhbiBpbml0aWFsIGR1bW15IG5vdGlmaWNhdGlvbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiY2U5MzhhMWQ1
NjczMDIzNWVmNzFmODk5MDU3MTIzYzVhZTBlMGY2Li5hNGRjODkwZTQ1MTYxMGEzYmNhMzBiODM0
MjM3MjAwYjE3OTAxMGU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTI2OSw4ICsxMjY5LDYgQEAgd2Via2l0Lm9yZy9iLzE3Mjk1NSBtZWRpYS92aWRl
by1wcmVsb2FkLmh0bWwgWyBDcmFzaCBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzE3NTU3NSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9wbGF5LXdpdGgtc2xvdy10ZXh0LXRy
YWNrcy5odG1sIFsgQ3Jhc2ggUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xNzY4MDMgaHR0cC90ZXN0
cy9sb2NhbC9ibG9iL3NlbmQtaHlicmlkLWJsb2ItdXNpbmctb3Blbi1wYW5lbC5odG1sIFsgQ3Jh
c2ggXQotCiAjIFNlZSBhbHNvIHdlYmtpdC5vcmcvYi8xNDE2OTkKIHdlYmtpdC5vcmcvYi8xNzc1
MzQgZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtcmVzcGVjdHMtY3NzLXNpemUuaHRtbCBbIENy
YXNoIEltYWdlT25seUZhaWx1cmUgXQogIyBTZWUgYWxzbyB3ZWJraXQub3JnL2IvMTYzNTI4IFRo
cmVhZGVkIGNvbXBvc2l0b3IgZmFpbHVyZXMgY2F1c2VkIGJ5IG9uZSBvZiByMjAzNDk2LCByMjAz
NDk3LCBvciByMjAzNDk4Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>