<?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>204411</bug_id>
          
          <creation_ts>2019-11-20 07:33:15 -0800</creation_ts>
          <short_desc>[JSCOnly] 32-bits warning on memset of JSValue</short_desc>
          <delta_ts>2020-03-05 00:55:20 -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>JavaScriptCore</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Lima">ticaiolima</reporter>
          <assigned_to name="Paulo Matos">pmatos</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsc32</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pmatos</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1591995</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-11-20 07:33:15 -0800</bug_when>
    <thetext>This is current warning:

```
[42/54] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f2e18ffc-17.cpp.o
In file included from ../../Source/JavaScriptCore/heap/Heap.h:31,
                 from ../../Source/JavaScriptCore/heap/DeferGC.h:29,
                 from ../../Source/JavaScriptCore/runtime/ConcurrentJSLock.h:28,
                 from ../../Source/JavaScriptCore/runtime/VM.h:34,
                 from ../../Source/JavaScriptCore/interpreter/CallFrame.h:30,
                 from ../../Source/JavaScriptCore/runtime/ArgList.h:24,
                 from ../../Source/JavaScriptCore/runtime/JSArray.h:23,
                 from ../../Source/JavaScriptCore/bytecode/ArrayAllocationProfile.h:29,
                 from ../../Source/JavaScriptCore/runtime/JSGlobalObject.h:24,
                 from ../../Source/JavaScriptCore/runtime/JSFixedArray.h:28,
                 from ../../Source/JavaScriptCore/runtime/JSFixedArray.cpp:27,
                 from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f2e18ffc-17.cpp:1:
../../Source/JavaScriptCore/heap/GCMemoryOperations.h: In instantiation of ‘void JSC::gcSafeZeroMemory(T*, size_t) [with T = JSC::JSValue; size_t = unsigned int]’:
../../Source/JavaScriptCore/runtime/RegExpMatchesArray.h:97:123:   required from here
../../Source/JavaScriptCore/heap/GCMemoryOperations.h:307:11: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class JSC::JSValue’; use assignment or value-initialization instead [-Wclass-memaccess]
     memset(dst, 0, bytes);
     ~~~~~~^~~~~~~~~~~~~~~
In file included from ../../Source/JavaScriptCore/bytecode/SpeculatedType.h:32,
                 from ../../Source/JavaScriptCore/runtime/IndexingType.h:28,
                 from ../../Source/JavaScriptCore/bytecode/ArrayAllocationProfile.h:28,
                 from ../../Source/JavaScriptCore/runtime/JSGlobalObject.h:24,
                 from ../../Source/JavaScriptCore/runtime/JSFixedArray.h:28,
                 from ../../Source/JavaScriptCore/runtime/JSFixedArray.cpp:27,
                 from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-f2e18ffc-17.cpp:1:
../../Source/JavaScriptCore/runtime/JSCJSValue.h:136:7: note: ‘class JSC::JSValue’ declared here
 class JSValue {
       ^~~~~~~

```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592697</commentid>
    <comment_count>1</comment_count>
      <attachid>384132</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-11-22 01:52:21 -0800</bug_when>
    <thetext>Created attachment 384132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592706</commentid>
    <comment_count>2</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-11-22 02:30:44 -0800</bug_when>
    <thetext>Uploaded patch to the wrong bug. :( Apologies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592770</commentid>
    <comment_count>3</comment_count>
      <attachid>384148</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-11-22 06:33:24 -0800</bug_when>
    <thetext>Created attachment 384148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592771</commentid>
    <comment_count>4</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-11-22 06:34:40 -0800</bug_when>
    <thetext>Hopefully it is now the right patch. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592773</commentid>
    <comment_count>5</comment_count>
      <attachid>384148</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-11-22 06:42:33 -0800</bug_when>
    <thetext>Comment on attachment 384148
Patch

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

&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:309
&gt; +        bitwise_cast&lt;volatile uint32_t*&gt;(dst)[i] = 0;

What about casting `dst` to `void*`? The we would have  `memset(bitwise_cast&lt;void*&gt;(dst), 0, bytes);`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592774</commentid>
    <comment_count>6</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-11-22 06:48:28 -0800</bug_when>
    <thetext>(In reply to Caio Lima from comment #5)
&gt; Comment on attachment 384148 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384148&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:309
&gt; &gt; +        bitwise_cast&lt;volatile uint32_t*&gt;(dst)[i] = 0;
&gt; 
&gt; What about casting `dst` to `void*`? The we would have 
&gt; `memset(bitwise_cast&lt;void*&gt;(dst), 0, bytes);`.

Actually using memset here is always bad because GCC can potentially optimize it away. Instead, we could potentially use std::fill but I thought it would fit better with the code to do it as x86_64 does it.

At the same time, I am still looking at this and wondering if this is correct, because although I haven&apos;t seen test failures yet, I think the JSVALUE in 32bits are two 64bits, in which case, we might need to double the count.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592779</commentid>
    <comment_count>7</comment_count>
      <attachid>384148</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-11-22 07:03:31 -0800</bug_when>
    <thetext>Comment on attachment 384148
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:309
&gt;&gt;&gt; +        bitwise_cast&lt;volatile uint32_t*&gt;(dst)[i] = 0;
&gt;&gt; 
&gt;&gt; What about casting `dst` to `void*`? The we would have  `memset(bitwise_cast&lt;void*&gt;(dst), 0, bytes);`.
&gt; 
&gt; Actually using memset here is always bad because GCC can potentially optimize it away. Instead, we could potentially use std::fill but I thought it would fit better with the code to do it as x86_64 does it.
&gt; 
&gt; At the same time, I am still looking at this and wondering if this is correct, because although I haven&apos;t seen test failures yet, I think the JSVALUE in 32bits are two 64bits, in which case, we might need to double the count.

sizeof(JSValue) on 32-bits is also 8 bytes (https://github.com/caiolima/webkit/blob/master/Source/JavaScriptCore/runtime/JSCJSValue.h#L344). The difference from JSValue64 is the enconding of values. On 32-bits we use high 32-bits as the tag and the other 32-bits as the payload. One thing that I&apos;m missing here is what&apos;s bad about GCC optimizing `memset`? Is it possible to remove this code with DCE or something like that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592810</commentid>
    <comment_count>8</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-11-22 08:28:16 -0800</bug_when>
    <thetext>(In reply to Caio Lima from comment #7)
&gt; Comment on attachment 384148 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384148&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:309
&gt; &gt;&gt;&gt; +        bitwise_cast&lt;volatile uint32_t*&gt;(dst)[i] = 0;
&gt; &gt;&gt; 
&gt; &gt;&gt; What about casting `dst` to `void*`? The we would have  `memset(bitwise_cast&lt;void*&gt;(dst), 0, bytes);`.
&gt; &gt; 
&gt; &gt; Actually using memset here is always bad because GCC can potentially optimize it away. Instead, we could potentially use std::fill but I thought it would fit better with the code to do it as x86_64 does it.
&gt; &gt; 
&gt; &gt; At the same time, I am still looking at this and wondering if this is correct, because although I haven&apos;t seen test failures yet, I think the JSVALUE in 32bits are two 64bits, in which case, we might need to double the count.
&gt; 
&gt; sizeof(JSValue) on 32-bits is also 8 bytes
&gt; (https://github.com/caiolima/webkit/blob/master/Source/JavaScriptCore/
&gt; runtime/JSCJSValue.h#L344). The difference from JSValue64 is the enconding
&gt; of values. On 32-bits we use high 32-bits as the tag and the other 32-bits
&gt; as the payload. 

I thought that could be the case, which is why I mentioned my patch is probably broken even though no tests were seen to fail.

&gt; One thing that I&apos;m missing here is what&apos;s bad about GCC
&gt; optimizing `memset`? Is it possible to remove this code with DCE or
&gt; something like that?

If gcc optimizes memset away, then it won&apos;t zero the memory. And this is a security issue. Yes, DCE can in GCC eliminate the memset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592852</commentid>
    <comment_count>9</comment_count>
      <attachid>384163</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-11-22 09:51:19 -0800</bug_when>
    <thetext>Created attachment 384163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592867</commentid>
    <comment_count>10</comment_count>
      <attachid>384163</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-22 10:13:33 -0800</bug_when>
    <thetext>Comment on attachment 384163
Patch

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

r=me with fix.

&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:256
&gt; +    RELEASE_ASSERT(bytes % 8 == 0);

Please remove this RELEASE_ASSERT.  It&apos;s not necessarily free and it&apos;s redundant with the one at the top of gcSafeZeroMemory().  You can make it a debug ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594366</commentid>
    <comment_count>11</comment_count>
      <attachid>384163</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-30 16:41:22 -0800</bug_when>
    <thetext>Comment on attachment 384163
Patch

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

&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:-307
&gt; -    memset(dst, 0, bytes);

Why are we no longer calling memset? That’s faster than the loop. Maybe just silence the warning instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594507</commentid>
    <comment_count>12</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-12-01 23:38:38 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #11)
&gt; Comment on attachment 384163 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384163&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:-307
&gt; &gt; -    memset(dst, 0, bytes);
&gt; 
&gt; Why are we no longer calling memset? That’s faster than the loop. Maybe just
&gt; silence the warning instead?

There&apos;s a possibility that the compiler might remove the memset call and the zero&apos;ing of memory won&apos;t happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594510</commentid>
    <comment_count>13</comment_count>
      <attachid>384596</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-12-02 00:28:46 -0800</bug_when>
    <thetext>Created attachment 384596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594630</commentid>
    <comment_count>14</comment_count>
      <attachid>384596</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-12-02 09:17:04 -0800</bug_when>
    <thetext>Comment on attachment 384596
Patch

Wasn&apos;t this already landed previously?  Was it rolled out?  If so, why, and why is it ok to land again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594631</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-12-02 09:17:56 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #14)
&gt; Comment on attachment 384596 [details]
&gt; Patch
&gt; 
&gt; Wasn&apos;t this already landed previously?  Was it rolled out?  If so, why, and
&gt; why is it ok to land again?

OK, looks like it was never landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594632</commentid>
    <comment_count>16</comment_count>
      <attachid>384596</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-12-02 09:20:08 -0800</bug_when>
    <thetext>Comment on attachment 384596
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Implemented alternative to memset, and refactored solutions.
&gt; +        Fixes warning on 32bit builds.

It&apos;s probably worth adding a comment here that a compiler may choose to optimize away the memset (given Saam&apos;s question), or elaborate on what the warning is if it is related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594636</commentid>
    <comment_count>17</comment_count>
      <attachid>384596</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-12-02 09:25:50 -0800</bug_when>
    <thetext>Comment on attachment 384596
Patch

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

&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:311
&gt;          bitwise_cast&lt;volatile uint64_t*&gt;(dst)[i] = 0;

Please also change this #else case to use gcSafeZeroMemoryHelper(dst, bytes) since it is identical code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596209</commentid>
    <comment_count>18</comment_count>
      <attachid>385003</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-12-06 04:54:28 -0800</bug_when>
    <thetext>Created attachment 385003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596210</commentid>
    <comment_count>19</comment_count>
      <attachid>385004</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-12-06 04:59:06 -0800</bug_when>
    <thetext>Created attachment 385004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596211</commentid>
    <comment_count>20</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-12-06 04:59:49 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #17)
&gt; Comment on attachment 384596 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384596&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:311
&gt; &gt;          bitwise_cast&lt;volatile uint64_t*&gt;(dst)[i] = 0;
&gt; 
&gt; Please also change this #else case to use gcSafeZeroMemoryHelper(dst, bytes)
&gt; since it is identical code.

Mark, sorry for the delay on this. I hope all concerns have now been taken care of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596318</commentid>
    <comment_count>21</comment_count>
      <attachid>385004</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-06 12:32:38 -0800</bug_when>
    <thetext>Comment on attachment 385004
Patch

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

&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:277
&gt; +    return;

Seems that using unconditional return like this could eventually lead to unreachable code warnings. Can we use #else instead of return?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596789</commentid>
    <comment_count>22</comment_count>
      <attachid>385142</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-12-09 03:34:19 -0800</bug_when>
    <thetext>Created attachment 385142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596797</commentid>
    <comment_count>23</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-12-09 05:44:33 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #21)
&gt; Comment on attachment 385004 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=385004&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:277
&gt; &gt; +    return;
&gt; 
&gt; Seems that using unconditional return like this could eventually lead to
&gt; unreachable code warnings. Can we use #else instead of return?

Right - well thought out. I have updated the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598091</commentid>
    <comment_count>24</comment_count>
      <attachid>384163</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-12 12:02:44 -0800</bug_when>
    <thetext>Comment on attachment 384163
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:-307
&gt;&gt;&gt; -    memset(dst, 0, bytes);
&gt;&gt; 
&gt;&gt; Why are we no longer calling memset? That’s faster than the loop. Maybe just silence the warning instead?
&gt; 
&gt; There&apos;s a possibility that the compiler might remove the memset call and the zero&apos;ing of memory won&apos;t happen.

How? Why could the compiler delete memset?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602981</commentid>
    <comment_count>25</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-01-06 02:47:19 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #24)
&gt; Comment on attachment 384163 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384163&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:-307
&gt; &gt;&gt;&gt; -    memset(dst, 0, bytes);
&gt; &gt;&gt; 
&gt; &gt;&gt; Why are we no longer calling memset? That’s faster than the loop. Maybe just silence the warning instead?
&gt; &gt; 
&gt; &gt; There&apos;s a possibility that the compiler might remove the memset call and the zero&apos;ing of memory won&apos;t happen.
&gt; 
&gt; How? Why could the compiler delete memset?

Saam, sorry for the delay.
See Notes in https://en.cppreference.com/w/c/string/byte/memset:
Quote:
-
memset may be optimized away (under the as-if rules) if the object modified by this function is not accessed again for the rest of its lifetime (e.g. gcc bug 8537). For that reason, this function cannot be used to scrub memory (e.g. to fill an array that stored a password with zeroes). This optimization is prohibited for memset_s: it is guaranteed to perform the memory write. Third-party solutions for that include FreeBSD explicit_bzero or Microsoft SecureZeroMemory.
-

memset should not be used for safe zero&apos;ing, which is why memset_s exists.
I have found this explanation as well: 
https://www.cryptologie.net/article/419/zeroing-memory-compiler-optimizations-and-memset_s/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604084</commentid>
    <comment_count>26</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-01-08 07:16:44 -0800</bug_when>
    <thetext>ping for r+/cq+ if there are no further issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624517</commentid>
    <comment_count>27</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-03-02 06:03:35 -0800</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624624</commentid>
    <comment_count>28</comment_count>
      <attachid>384163</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-02 11:10:50 -0800</bug_when>
    <thetext>Comment on attachment 384163
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/JavaScriptCore/heap/GCMemoryOperations.h:-307
&gt;&gt;&gt;&gt;&gt; -    memset(dst, 0, bytes);
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Why are we no longer calling memset? That’s faster than the loop. Maybe just silence the warning instead?
&gt;&gt;&gt; 
&gt;&gt;&gt; There&apos;s a possibility that the compiler might remove the memset call and the zero&apos;ing of memory won&apos;t happen.
&gt;&gt; 
&gt;&gt; How? Why could the compiler delete memset?
&gt; 
&gt; Saam, sorry for the delay.
&gt; See Notes in https://en.cppreference.com/w/c/string/byte/memset:
&gt; Quote:
&gt; -
&gt; memset may be optimized away (under the as-if rules) if the object modified by this function is not accessed again for the rest of its lifetime (e.g. gcc bug 8537). For that reason, this function cannot be used to scrub memory (e.g. to fill an array that stored a password with zeroes). This optimization is prohibited for memset_s: it is guaranteed to perform the memory write. Third-party solutions for that include FreeBSD explicit_bzero or Microsoft SecureZeroMemory.
&gt; -
&gt; 
&gt; memset should not be used for safe zero&apos;ing, which is why memset_s exists.
&gt; I have found this explanation as well: 
&gt; https://www.cryptologie.net/article/419/zeroing-memory-compiler-optimizations-and-memset_s/

I think this &quot;memset&quot; issue is typically tight to the security issues. And in this case, this is unrelated.
The issue happens when zeroing the value which can contain security-token etc. But it is not scratched (https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-yang.pdf).
In this case, I think it does not matter. We are not using memset to the security related thing, it is used for GC memory&apos;s clearing. And if it is read by GC, which means it is escaped from the allocation, so GCC never removes this memset.
Is my understanding correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625467</commentid>
    <comment_count>29</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-03-04 02:45:11 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #28)
&gt; 
&gt; I think this &quot;memset&quot; issue is typically tight to the security issues. And
&gt; in this case, this is unrelated.
&gt; The issue happens when zeroing the value which can contain security-token
&gt; etc. But it is not scratched
&gt; (https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-yang.
&gt; pdf).
&gt; In this case, I think it does not matter. We are not using memset to the
&gt; security related thing, it is used for GC memory&apos;s clearing. And if it is
&gt; read by GC, which means it is escaped from the allocation, so GCC never
&gt; removes this memset.
&gt; Is my understanding correct?


Hi Yusuke,

Thanks for the comments on this. I think you are correct. I was looking at the code and at how DSE deals with this in GCC8 and it looks like it won&apos;t be removed. Unsure exactly why but my guess it that GCC might not be able to prove that the address is not read or because it&apos;s inside a template. Usually GCC can be quite aggressive in removing stores like this in C code. For example:
https://godbolt.org/z/TYQeqx

But it is certainly true that this is not a security concern for us and as far as I understand this code (although first time looking at GC), it wouldn&apos;t be a problem if indeed GCC removes the store.

I will propose a simpler patch where I cast the dst pointer to a (char *) to avoid the error of memsetting a non-POD type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625472</commentid>
    <comment_count>30</comment_count>
      <attachid>392401</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-03-04 03:34:40 -0800</bug_when>
    <thetext>Created attachment 392401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625548</commentid>
    <comment_count>31</comment_count>
      <attachid>392401</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-04 09:17:44 -0800</bug_when>
    <thetext>Comment on attachment 392401
Patch

We prefer C++ style casts.
reinterpret_cast&lt;char*&gt;(dst)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625712</commentid>
    <comment_count>32</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-04 13:13:06 -0800</bug_when>
    <thetext>r=me too, and agree with Alex. Let&apos;s use C++ style cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625970</commentid>
    <comment_count>33</comment_count>
      <attachid>392541</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-03-04 23:59:01 -0800</bug_when>
    <thetext>Created attachment 392541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625971</commentid>
    <comment_count>34</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-03-04 23:59:35 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #32)
&gt; r=me too, and agree with Alex. Let&apos;s use C++ style cast.

Thanks. Sure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625972</commentid>
    <comment_count>35</comment_count>
      <attachid>392541</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-03-05 00:07:20 -0800</bug_when>
    <thetext>Comment on attachment 392541
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625980</commentid>
    <comment_count>36</comment_count>
      <attachid>392541</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-05 00:54:54 -0800</bug_when>
    <thetext>Comment on attachment 392541
Patch

Clearing flags on attachment: 392541

Committed r257908: &lt;https://trac.webkit.org/changeset/257908&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625981</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-05 00:54:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625982</commentid>
    <comment_count>38</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-05 00:55:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/60075573&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384132</attachid>
            <date>2019-11-22 01:52:21 -0800</date>
            <delta_ts>2019-11-22 02:30:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20191122105155.patch</filename>
            <type>text/plain</type>
            <size>1439</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2IwYzY0YmVkNTJkZGNmZTE3YTA2NWVhNGMxNDc1NjUx
ZDIxNmMyMS4uOWUxMWU2MDBjMGY3OGUwOGFiYzU3YjA5YzgwY2NkNjMzNTJhZTM0MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE5LTExLTIyICBQYXVsbyBNYXRvcyAgPHBtYXRvc0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtKU0Nvbmx5XSAzMi1iaXRzIHdhcm5pbmcgb24gbWVtc2V0IG9mIEpTVmFsdWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDQxMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBKU0NPbmx5IHRv
IHBvc3NpYmxlIHBsYXRmb3Jtcy4KKyAgICAgICAgCisgICAgICAgICogU2NyaXB0cy9ydW4tamF2
YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgIChjb25maWd1cmF0aW9uRm9yVXBsb2FkKToKKwog
MjAxOS0xMS0yMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgcnVuLXdlYmtpdC10ZXN0czogTWFrZSB1c2FiaWxpdHkgdGVzdCBvbiBib290aW5nIHNpbXVs
YXRvcnMgbW9yZSByb2J1c3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3Jp
cHRjb3JlLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMKaW5k
ZXggZGY0ODA1OTNiMDQ1NTBkNjNkZjc3ZjNkYjA1MDI3MWRmODRiNmY3OC4uODllMjU1MjVlY2Q1
YzNkMzVhODY5NWUwZTE1OWYwMzAxZTUzOGNkYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9y
dW4tamF2YXNjcmlwdGNvcmUtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlw
dGNvcmUtdGVzdHMKQEAgLTM4OSw2ICszODksMTIgQEAgc3ViIGNvbmZpZ3VyYXRpb25Gb3JVcGxv
YWQoKQogICAgICAgICAgICAgY2hvbXAoJHZlcnNpb24gPSBgL3Vzci9iaW4vdW5hbWUgLXJgKTsK
ICAgICAgICAgICAgICR2ZXJzaW9uID0gc3BsaXRWZXJzaW9uU3RyaW5nKCR2ZXJzaW9uKTsKICAg
ICAgICAgfQorICAgIH0gZWxzaWYgKGlzSlNDT25seSgpKSB7CisgICAgICAgICRwbGF0Zm9ybSA9
ICdqc2Mtb25seSc7CisgICAgICAgIGlmICghJHZlcnNpb24pIHsKKyAgICAgICAgICAgIGNob21w
KCR2ZXJzaW9uID0gYC91c3IvYmluL3VuYW1lIC1yYCk7CisgICAgICAgICAgICAkdmVyc2lvbiA9
IHNwbGl0VmVyc2lvblN0cmluZygkdmVyc2lvbik7CisgICAgICAgIH0KICAgICB9IGVsc2lmIChp
c0FueVdpbmRvd3MoKSkgewogICAgICAgICAkcGxhdGZvcm0gPSAnd2luJzsKICAgICAgICAgaWYg
KCEkdmVyc2lvbikgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384148</attachid>
            <date>2019-11-22 06:33:24 -0800</date>
            <delta_ts>2019-11-22 08:47:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20191122153258.patch</filename>
            <type>text/plain</type>
            <size>1474</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZWU2ZTk1MGExMDRhMDkxZjA4ZjE5ODFhODFiMTVhY2FjZGM5ZDczLi4yNjI5MDIwNjE5MjY2Mjc4
YzliOTUwOTAzZjk4ZjNjMDhmZGU2ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0xMS0yMiAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBbSlNDb25seV0gMzItYml0cyB3YXJuaW5nIG9uIG1lbXNldCBvZiBKU1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb2xsb3cg
eDg2XzY0IG1ldGhvZCB0byB6ZXJvIHZhcmlhYmxlIC0gcmVtb3ZlcyB3YXJuaW5nIGR1ZSB0bwor
ICAgICAgICB1c2luZyBtZW1zZXQgb24gbm9uLVBPRCB0eXBlLgorCisgICAgICAgICogaGVhcC9H
Q01lbW9yeU9wZXJhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6Z2NTYWZlWmVyb01lbW9yeSk6CisK
IDIwMTktMTEtMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCBtaXNzaW5nIGV4Y2VwdGlvbiBjaGVjayBpbiByZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2goKS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NNZW1vcnlPcGVyYXRpb25zLmgKaW5k
ZXggNjhlYzU2MjY3MmRhM2RlNmExMmJiMWEyMDNiY2JjNDcyZmFmMGI5NC4uODVmNGZiMzBiYTk2
Mzc2NDc2N2FhNTUwNjQ1ODI3ZmE4MWU3ODFmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NNZW1vcnlPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvR0NNZW1vcnlPcGVyYXRpb25zLmgKQEAgLTMwNCw3ICszMDQsOSBAQCBBTFdBWVNf
SU5MSU5FIHZvaWQgZ2NTYWZlWmVyb01lbW9yeShUKiBkc3QsIHNpemVfdCBieXRlcykKICAgICAg
ICAgYml0d2lzZV9jYXN0PHZvbGF0aWxlIHVpbnQ2NF90Kj4oZHN0KVtpXSA9IDA7CiAjZW5kaWYg
Ly8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCiAjZWxzZQotICAgIG1lbXNldChkc3QsIDAsIGJ5
dGVzKTsKKyAgICBzaXplX3QgY291bnQgPSBieXRlcyAvIDQ7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICBiaXR3aXNlX2Nhc3Q8dm9sYXRpbGUgdWludDMy
X3QqPihkc3QpW2ldID0gMDsKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384163</attachid>
            <date>2019-11-22 09:51:19 -0800</date>
            <delta_ts>2019-12-02 00:28:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20191122185054.patch</filename>
            <type>text/plain</type>
            <size>2115</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZWU2ZTk1MGExMDRhMDkxZjA4ZjE5ODFhODFiMTVhY2FjZGM5ZDczLi5iZjhmMTRiYWIxODFlNzJj
OThjYTFiNzAyMThkZDlkYzM2YTU4OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0xMS0yMiAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBbSlNDb25seV0gMzItYml0cyB3YXJuaW5nIG9uIG1lbXNldCBvZiBKU1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnRlZCBhbHRlcm5hdGl2ZSB0byBtZW1zZXQsIGFuZCByZWZhY3RvcmVkIHNvbHV0aW9ucy4KKyAg
ICAgICAgRml4ZXMgd2FybmluZyBvbiAzMmJpdCBidWlsZHMuCisKKyAgICAgICAgKiBoZWFwL0dD
TWVtb3J5T3BlcmF0aW9ucy5oOgorICAgICAgICAoSlNDOjpnY1NhZmVaZXJvTWVtb3J5SGVscGVy
KToKKyAgICAgICAgKEpTQzo6Z2NTYWZlWmVyb01lbW9yeSk6CisKIDIwMTktMTEtMjIgIE1hcmsg
TGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBtaXNzaW5nIGV4Y2VwdGlv
biBjaGVjayBpbiByZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2goKS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvR0NNZW1vcnlPcGVyYXRpb25zLmgKaW5kZXggNjhlYzU2MjY3MmRhM2Rl
NmExMmJiMWEyMDNiY2JjNDcyZmFmMGI5NC4uNjkxZjYzNjQzYzdjNDg4MDk2ODNmOWIyZTlhY2Ey
ODRjZWEyNTVjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NNZW1v
cnlPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NNZW1vcnlP
cGVyYXRpb25zLmgKQEAgLTI0OSw2ICsyNDksMTcgQEAgQUxXQVlTX0lOTElORSB2b2lkIGdjU2Fm
ZU1lbW1vdmUoVCogZHN0LCBUKiBzcmMsIHNpemVfdCBieXRlcykKICNlbmRpZiAvLyBVU0UoSlNW
QUxVRTY0KQogfQogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK0FMV0FZU19JTkxJTkUgdm9pZCBn
Y1NhZmVaZXJvTWVtb3J5SGVscGVyKFQgKmRzdCwgc2l6ZV90IGJ5dGVzKQoreworICAgIHN0YXRp
Y19hc3NlcnQoc2l6ZW9mKFQpID09IHNpemVvZihKU1ZhbHVlKSk7CisgICAgUkVMRUFTRV9BU1NF
UlQoYnl0ZXMgJSA4ID09IDApOworCisgICAgc2l6ZV90IGNvdW50ID0gYnl0ZXMgLyA4OworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgYml0d2lzZV9jYXN0
PHZvbGF0aWxlIHVpbnQ2NF90Kj4oZHN0KVtpXSA9IDA7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogQUxXQVlTX0lOTElORSB2b2lkIGdjU2FmZVplcm9NZW1vcnkoVCogZHN0LCBzaXplX3Qg
Ynl0ZXMpCiB7CkBAIC0yOTksMTIgKzMxMCwxMCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgZ2NTYWZl
WmVyb01lbW9yeShUKiBkc3QsIHNpemVfdCBieXRlcykKICNlcnJvciAiVW5rbm93biBhcmNoaXRl
Y3R1cmUuIgogI2VuZGlmIC8vIENQVShYODZfNjQpCiAjZWxzZQotICAgIHNpemVfdCBjb3VudCA9
IGJ5dGVzIC8gODsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCi0gICAg
ICAgIGJpdHdpc2VfY2FzdDx2b2xhdGlsZSB1aW50NjRfdCo+KGRzdClbaV0gPSAwOworICAgIGdj
U2FmZVplcm9NZW1vcnlIZWxwZXIoZHN0LCBieXRlcyk7CiAjZW5kaWYgLy8gQ09NUElMRVIoR0ND
X0NPTVBBVElCTEUpCiAjZWxzZQotICAgIG1lbXNldChkc3QsIDAsIGJ5dGVzKTsKKyAgICBnY1Nh
ZmVaZXJvTWVtb3J5SGVscGVyKGRzdCwgYnl0ZXMpOwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQp
CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384596</attachid>
            <date>2019-12-02 00:28:46 -0800</date>
            <delta_ts>2019-12-06 04:54:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20191202092844.patch</filename>
            <type>text/plain</type>
            <size>2101</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
OGUwN2MxNWI1MjQyNzVhMTZiOTQyMGExYjRhODk1NmY2NThmYzI5Li4xYjFhNTA1OWM3YmE4MGM5
NmUxODBkNmM2YmU1ZDNmYTRiZGI5MjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0xMi0wMiAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBbSlNDb25seV0gMzItYml0cyB3YXJuaW5nIG9uIG1lbXNldCBvZiBKU1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBJbXBsZW1lbnRlZCBh
bHRlcm5hdGl2ZSB0byBtZW1zZXQsIGFuZCByZWZhY3RvcmVkIHNvbHV0aW9ucy4KKyAgICAgICAg
Rml4ZXMgd2FybmluZyBvbiAzMmJpdCBidWlsZHMuCisKKyAgICAgICAgKiBoZWFwL0dDTWVtb3J5
T3BlcmF0aW9ucy5oOgorICAgICAgICAoSlNDOjpnY1NhZmVaZXJvTWVtb3J5SGVscGVyKToKKyAg
ICAgICAgKEpTQzo6Z2NTYWZlWmVyb01lbW9yeSk6CisKIDIwMTktMTItMDEgIFR1b21hcyBLYXJr
a2FpbmVuICA8dHVvbWFzLndlYmtpdEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEZ1enplckFn
ZW50IHRoYXQgcmVhZHMgcHJlZGljdGlvbnMgZnJvbSBhIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvR0NNZW1vcnlPcGVyYXRpb25zLmgKaW5kZXggMjgyZDc5MWQxY2U1ZTAw
ZjI3ZGJmNTE5ZTkzOWViNGNiNWY0NmI0ZC4uOGQ0Y2MxZGViOTBiNzdjNmY2YTY2MWQ0NjJlMzUx
MTlmY2Y5MTNlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NNZW1v
cnlPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NNZW1vcnlP
cGVyYXRpb25zLmgKQEAgLTI0OSw2ICsyNDksMTYgQEAgQUxXQVlTX0lOTElORSB2b2lkIGdjU2Fm
ZU1lbW1vdmUoVCogZHN0LCBUKiBzcmMsIHNpemVfdCBieXRlcykKICNlbmRpZiAvLyBVU0UoSlNW
QUxVRTY0KQogfQogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK0FMV0FZU19JTkxJTkUgdm9pZCBn
Y1NhZmVaZXJvTWVtb3J5SGVscGVyKFQgKmRzdCwgc2l6ZV90IGJ5dGVzKQoreworICAgIHN0YXRp
Y19hc3NlcnQoc2l6ZW9mKFQpID09IHNpemVvZihKU1ZhbHVlKSk7CisKKyAgICBzaXplX3QgY291
bnQgPSBieXRlcyAvIDg7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQor
ICAgICAgICBiaXR3aXNlX2Nhc3Q8dm9sYXRpbGUgdWludDY0X3QqPihkc3QpW2ldID0gMDsKK30K
KwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTFdBWVNfSU5MSU5FIHZvaWQgZ2NTYWZlWmVyb01l
bW9yeShUKiBkc3QsIHNpemVfdCBieXRlcykKIHsKQEAgLTMwMSwxMiArMzExLDEwIEBAIEFMV0FZ
U19JTkxJTkUgdm9pZCBnY1NhZmVaZXJvTWVtb3J5KFQqIGRzdCwgc2l6ZV90IGJ5dGVzKQogICAg
ICAgICBiaXR3aXNlX2Nhc3Q8dm9sYXRpbGUgdWludDY0X3QqPihkc3QpW2ldID0gMDsKICNlbmRp
ZiAvLyBDUFUoWDg2XzY0KQogI2Vsc2UKLSAgICBzaXplX3QgY291bnQgPSBieXRlcyAvIDg7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICBiaXR3aXNlX2Nh
c3Q8dm9sYXRpbGUgdWludDY0X3QqPihkc3QpW2ldID0gMDsKKyAgICBnY1NhZmVaZXJvTWVtb3J5
SGVscGVyKGRzdCwgYnl0ZXMpOwogI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQog
I2Vsc2UKLSAgICBtZW1zZXQoZHN0LCAwLCBieXRlcyk7CisgICAgZ2NTYWZlWmVyb01lbW9yeUhl
bHBlcihkc3QsIGJ5dGVzKTsKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385003</attachid>
            <date>2019-12-06 04:54:28 -0800</date>
            <delta_ts>2019-12-06 04:59:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20191206135427.patch</filename>
            <type>text/plain</type>
            <size>2876</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YjcwMjY3YzA3N2NhZjIzMDU3ZjUyZjc4MWY3NzMxYmY0OGY1NjRjLi5lZmI1NDY1MjY4NjRiMzJm
YzJmMWY0OTQwOGU0YWQ5Yzk2MjMwNzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0xMi0wNiAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBbSlNDb25seV0gMzItYml0cyB3YXJuaW5nIG9uIG1lbXNldCBvZiBKU1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBJbXBsZW1lbnRlZCBh
bHRlcm5hdGl2ZSB0byBtZW1zZXQsIGFuZCByZWZhY3RvcmVkIHNvbHV0aW9ucy4KKyAgICAgICAg
Rml4ZXMgd2FybmluZyBvbiAzMmJpdCBidWlsZHMuCisKKyAgICAgICAgKiBoZWFwL0dDTWVtb3J5
T3BlcmF0aW9ucy5oOgorICAgICAgICAoSlNDOjpnY1NhZmVaZXJvTWVtb3J5SGVscGVyKToKKyAg
ICAgICAgKEpTQzo6Z2NTYWZlWmVyb01lbW9yeSk6CisKIDIwMTktMTItMDUgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0X2J5X2lkIElDcyBzaG91bGQgaGF2
ZSBhIHN0cnVjdHVyZSBoaXN0b3J5IHVzZWQgdG8gaW5kaWNhdGUgd2hlbiB3ZSBzaG91bGQgc2tp
cCBnZW5lcmF0aW5nIGFuIElDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9HQ01lbW9yeU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVt
b3J5T3BlcmF0aW9ucy5oCmluZGV4IDI4MmQ3OTFkMWNlNWUwMGYyN2RiZjUxOWU5MzllYjRjYjVm
NDZiNGQuLmRmZDlkMjQ0YzExMWI0YWQ0NmE0MzFiZTdjNTliMmViNzNhZDliNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5oCkBAIC0yNDks
MTMgKzI0OSwyMiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgZ2NTYWZlTWVtbW92ZShUKiBkc3QsIFQq
IHNyYywgc2l6ZV90IGJ5dGVzKQogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiB9CiAKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgorQUxXQVlTX0lOTElORSB2b2lkIGdjU2FmZVplcm9NZW1vcnlIZWxw
ZXIoVCAqZHN0LCBzaXplX3QgYnl0ZXMpCit7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkg
PT0gc2l6ZW9mKEpTVmFsdWUpKTsKKworICAgIHNpemVfdCBjb3VudCA9IGJ5dGVzIC8gODsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIGJpdHdpc2VfY2Fz
dDx2b2xhdGlsZSB1aW50NjRfdCo+KGRzdClbaV0gPSAwOworfQorCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KIEFMV0FZU19JTkxJTkUgdm9pZCBnY1NhZmVaZXJvTWVtb3J5KFQqIGRzdCwgc2l6ZV90
IGJ5dGVzKQogewogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFQpID09IHNpemVvZihKU1ZhbHVl
KSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoYnl0ZXMgJSA4ID09IDApOwotI2lmIFVTRShKU1ZBTFVF
NjQpCi0jaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCisjaWYgVVNFKEpTVkFMVUU2NCkgJiYg
Q09NUElMRVIoR0NDX0NPTVBBVElCTEUpCiAjaWYgQ1BVKFg4Nl82NCkKICAgICB1aW50NjRfdCB6
ZXJvID0gMDsKICAgICBzaXplX3QgY291bnQgPSBieXRlcyAvIDg7CkBAIC0yNjUsNiArMjc0LDcg
QEAgQUxXQVlTX0lOTElORSB2b2lkIGdjU2FmZVplcm9NZW1vcnkoVCogZHN0LCBzaXplX3QgYnl0
ZXMpCiAgICAgICAgIDogImEiKHplcm8pCiAgICAgICAgIDogIm1lbW9yeSIKICAgICApOworICAg
IHJldHVybjsKICNlbGlmIENQVShBUk02NCkKICAgICB1aW50NjRfdCBhbGlnbmVkQnl0ZXMgPSAo
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJ5dGVzKSAvIDY0KSAqIDY0OwogICAgIHVpbnQ2NF90IGRz
dFB0ciA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihkc3Qp
KTsKQEAgLTI5NSwxOSArMzA1LDEwIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBnY1NhZmVaZXJvTWVt
b3J5KFQqIGRzdCwgc2l6ZV90IGJ5dGVzKQogICAgICAgICA6CiAgICAgICAgIDogImQwIiwgImQx
IiwgIm1lbW9yeSIKICAgICApOwotI2Vsc2UKLSAgICBzaXplX3QgY291bnQgPSBieXRlcyAvIDg7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICBiaXR3aXNl
X2Nhc3Q8dm9sYXRpbGUgdWludDY0X3QqPihkc3QpW2ldID0gMDsKKyAgICByZXR1cm47CiAjZW5k
aWYgLy8gQ1BVKFg4Nl82NCkKLSNlbHNlCi0gICAgc2l6ZV90IGNvdW50ID0gYnl0ZXMgLyA4Owot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKLSAgICAgICAgYml0d2lzZV9j
YXN0PHZvbGF0aWxlIHVpbnQ2NF90Kj4oZHN0KVtpXSA9IDA7Ci0jZW5kaWYgLy8gQ09NUElMRVIo
R0NDX0NPTVBBVElCTEUpCi0jZWxzZQotICAgIG1lbXNldChkc3QsIDAsIGJ5dGVzKTsKLSNlbmRp
ZiAvLyBVU0UoSlNWQUxVRTY0KQorI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpICYmIENPTVBJTEVS
KEdDQ19DT01QQVRJQkxFKQorICAgIGdjU2FmZVplcm9NZW1vcnlIZWxwZXIoZHN0LCBieXRlcyk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385004</attachid>
            <date>2019-12-06 04:59:06 -0800</date>
            <delta_ts>2019-12-09 03:34:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20191206135905.patch</filename>
            <type>text/plain</type>
            <size>3170</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YjcwMjY3YzA3N2NhZjIzMDU3ZjUyZjc4MWY3NzMxYmY0OGY1NjRjLi43OWU1MWExZWI0ODk4Yjg1
YjljZTdlNzJkM2MyMzY1MzJmNWViNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxOS0xMi0wNiAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBbSlNDT25seV0gMzItYml0cyB3YXJuaW5nIG9uIG1lbXNldCBvZiBKU1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBJbXBsZW1lbnRlZCBh
bHRlcm5hdGl2ZSB0byBtZW1zZXQsIGFuZCByZWZhY3RvcmVkIHNvbHV0aW9ucy4KKyAgICAgICAg
Rml4ZXMgd2FybmluZyBvbiAzMmJpdCBidWlsZHMuIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBH
Q0Mga25vd3MKKyAgICAgICAgaXQgaXMgbm90IHNhZmUgdG8gdXNlIG1lbXNldCBvbiBub24tUE9E
IHR5cGVzIGFuZCB3YXJucyBhZ2FpbnN0IGl0cyB1c2UuCisgICAgICAgIE9uIHRoZSBvdGhlciBo
YW5kLCBjYXN0aW5nIGl0IHRvIGEgUE9EIHR5cGUgaXMgbm90IHJlY29tbWVuZGVkIHNpbmNlIEdD
QworICAgICAgICBjYW4gcmVtb3ZlIHRoZSBjYWxsIHRvIG1lbXNldCBpZiBpdCB0aGlua3MgdGhh
dCB0aGUgbWVtc2V0IGlzIG5vdAorICAgICAgICBuZWNlc3NhcnkuCisKKyAgICAgICAgKiBoZWFw
L0dDTWVtb3J5T3BlcmF0aW9ucy5oOgorICAgICAgICAoSlNDOjpnY1NhZmVaZXJvTWVtb3J5SGVs
cGVyKToKKyAgICAgICAgKEpTQzo6Z2NTYWZlWmVyb01lbW9yeSk6CisKIDIwMTktMTItMDUgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0X2J5X2lkIElDcyBz
aG91bGQgaGF2ZSBhIHN0cnVjdHVyZSBoaXN0b3J5IHVzZWQgdG8gaW5kaWNhdGUgd2hlbiB3ZSBz
aG91bGQgc2tpcCBnZW5lcmF0aW5nIGFuIElDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ01lbW9yeU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5oCmluZGV4IDI4MmQ3OTFkMWNlNWUwMGYyN2RiZjUxOWU5
MzllYjRjYjVmNDZiNGQuLmRmZDlkMjQ0YzExMWI0YWQ0NmE0MzFiZTdjNTliMmViNzNhZDliNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9u
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5o
CkBAIC0yNDksMTMgKzI0OSwyMiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgZ2NTYWZlTWVtbW92ZShU
KiBkc3QsIFQqIHNyYywgc2l6ZV90IGJ5dGVzKQogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiB9
CiAKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorQUxXQVlTX0lOTElORSB2b2lkIGdjU2FmZVplcm9N
ZW1vcnlIZWxwZXIoVCAqZHN0LCBzaXplX3QgYnl0ZXMpCit7CisgICAgc3RhdGljX2Fzc2VydChz
aXplb2YoVCkgPT0gc2l6ZW9mKEpTVmFsdWUpKTsKKworICAgIHNpemVfdCBjb3VudCA9IGJ5dGVz
IC8gODsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIGJp
dHdpc2VfY2FzdDx2b2xhdGlsZSB1aW50NjRfdCo+KGRzdClbaV0gPSAwOworfQorCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KIEFMV0FZU19JTkxJTkUgdm9pZCBnY1NhZmVaZXJvTWVtb3J5KFQqIGRz
dCwgc2l6ZV90IGJ5dGVzKQogewogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFQpID09IHNpemVv
ZihKU1ZhbHVlKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoYnl0ZXMgJSA4ID09IDApOwotI2lmIFVT
RShKU1ZBTFVFNjQpCi0jaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCisjaWYgVVNFKEpTVkFM
VUU2NCkgJiYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCiAjaWYgQ1BVKFg4Nl82NCkKICAgICB1
aW50NjRfdCB6ZXJvID0gMDsKICAgICBzaXplX3QgY291bnQgPSBieXRlcyAvIDg7CkBAIC0yNjUs
NiArMjc0LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIGdjU2FmZVplcm9NZW1vcnkoVCogZHN0LCBz
aXplX3QgYnl0ZXMpCiAgICAgICAgIDogImEiKHplcm8pCiAgICAgICAgIDogIm1lbW9yeSIKICAg
ICApOworICAgIHJldHVybjsKICNlbGlmIENQVShBUk02NCkKICAgICB1aW50NjRfdCBhbGlnbmVk
Qnl0ZXMgPSAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJ5dGVzKSAvIDY0KSAqIDY0OwogICAgIHVp
bnQ2NF90IGRzdFB0ciA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihiaXR3aXNlX2Nhc3Q8dWludHB0
cl90Pihkc3QpKTsKQEAgLTI5NSwxOSArMzA1LDEwIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBnY1Nh
ZmVaZXJvTWVtb3J5KFQqIGRzdCwgc2l6ZV90IGJ5dGVzKQogICAgICAgICA6CiAgICAgICAgIDog
ImQwIiwgImQxIiwgIm1lbW9yeSIKICAgICApOwotI2Vsc2UKLSAgICBzaXplX3QgY291bnQgPSBi
eXRlcyAvIDg7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAg
ICBiaXR3aXNlX2Nhc3Q8dm9sYXRpbGUgdWludDY0X3QqPihkc3QpW2ldID0gMDsKKyAgICByZXR1
cm47CiAjZW5kaWYgLy8gQ1BVKFg4Nl82NCkKLSNlbHNlCi0gICAgc2l6ZV90IGNvdW50ID0gYnl0
ZXMgLyA4OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKLSAgICAgICAg
Yml0d2lzZV9jYXN0PHZvbGF0aWxlIHVpbnQ2NF90Kj4oZHN0KVtpXSA9IDA7Ci0jZW5kaWYgLy8g
Q09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0jZWxzZQotICAgIG1lbXNldChkc3QsIDAsIGJ5dGVz
KTsKLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQorI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpICYm
IENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQorICAgIGdjU2FmZVplcm9NZW1vcnlIZWxwZXIoZHN0
LCBieXRlcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385142</attachid>
            <date>2019-12-09 03:34:19 -0800</date>
            <delta_ts>2020-03-04 03:34:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20191209123418.patch</filename>
            <type>text/plain</type>
            <size>2901</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YjcwMjY3YzA3N2NhZjIzMDU3ZjUyZjc4MWY3NzMxYmY0OGY1NjRjLi43MjI3YzAzMjU5MjU2MzM0
OGIwMTA5YWNiMGNhNjI2NGM0ZWQ1YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxOS0xMi0wOSAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBbSlNDT25seV0gMzItYml0cyB3YXJuaW5nIG9uIG1lbXNldCBvZiBKU1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBJbXBsZW1lbnRlZCBh
bHRlcm5hdGl2ZSB0byBtZW1zZXQsIGFuZCByZWZhY3RvcmVkIHNvbHV0aW9ucy4KKyAgICAgICAg
Rml4ZXMgd2FybmluZyBvbiAzMmJpdCBidWlsZHMuIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBH
Q0Mga25vd3MKKyAgICAgICAgaXQgaXMgbm90IHNhZmUgdG8gdXNlIG1lbXNldCBvbiBub24tUE9E
IHR5cGVzIGFuZCB3YXJucyBhZ2FpbnN0IGl0cyB1c2UuCisgICAgICAgIE9uIHRoZSBvdGhlciBo
YW5kLCBjYXN0aW5nIGl0IHRvIGEgUE9EIHR5cGUgaXMgbm90IHJlY29tbWVuZGVkIHNpbmNlIEdD
QworICAgICAgICBjYW4gcmVtb3ZlIHRoZSBjYWxsIHRvIG1lbXNldCBpZiBpdCB0aGlua3MgdGhh
dCB0aGUgbWVtc2V0IGlzIG5vdAorICAgICAgICBuZWNlc3NhcnkuCisKKyAgICAgICAgKiBoZWFw
L0dDTWVtb3J5T3BlcmF0aW9ucy5oOgorICAgICAgICAoSlNDOjpnY1NhZmVaZXJvTWVtb3J5SGVs
cGVyKToKKyAgICAgICAgKEpTQzo6Z2NTYWZlWmVyb01lbW9yeSk6CisKIDIwMTktMTItMDUgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0X2J5X2lkIElDcyBz
aG91bGQgaGF2ZSBhIHN0cnVjdHVyZSBoaXN0b3J5IHVzZWQgdG8gaW5kaWNhdGUgd2hlbiB3ZSBz
aG91bGQgc2tpcCBnZW5lcmF0aW5nIGFuIElDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ01lbW9yeU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5oCmluZGV4IDI4MmQ3OTFkMWNlNWUwMGYyN2RiZjUxOWU5
MzllYjRjYjVmNDZiNGQuLjRkMDk3OTc1ODMwNjdiOGNhNjg4M2UwZDYxY2FmNGI4OGRmOWYyZjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9u
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5o
CkBAIC0yNDksMTMgKzI0OSwyMiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgZ2NTYWZlTWVtbW92ZShU
KiBkc3QsIFQqIHNyYywgc2l6ZV90IGJ5dGVzKQogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiB9
CiAKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorQUxXQVlTX0lOTElORSB2b2lkIGdjU2FmZVplcm9N
ZW1vcnlIZWxwZXIoVCAqZHN0LCBzaXplX3QgYnl0ZXMpCit7CisgICAgc3RhdGljX2Fzc2VydChz
aXplb2YoVCkgPT0gc2l6ZW9mKEpTVmFsdWUpKTsKKworICAgIHNpemVfdCBjb3VudCA9IGJ5dGVz
IC8gODsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIGJp
dHdpc2VfY2FzdDx2b2xhdGlsZSB1aW50NjRfdCo+KGRzdClbaV0gPSAwOworfQorCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KIEFMV0FZU19JTkxJTkUgdm9pZCBnY1NhZmVaZXJvTWVtb3J5KFQqIGRz
dCwgc2l6ZV90IGJ5dGVzKQogewogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFQpID09IHNpemVv
ZihKU1ZhbHVlKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoYnl0ZXMgJSA4ID09IDApOwotI2lmIFVT
RShKU1ZBTFVFNjQpCi0jaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCisjaWYgVVNFKEpTVkFM
VUU2NCkgJiYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCiAjaWYgQ1BVKFg4Nl82NCkKICAgICB1
aW50NjRfdCB6ZXJvID0gMDsKICAgICBzaXplX3QgY291bnQgPSBieXRlcyAvIDg7CkBAIC0yOTUs
MTkgKzMwNCwxMiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgZ2NTYWZlWmVyb01lbW9yeShUKiBkc3Qs
IHNpemVfdCBieXRlcykKICAgICAgICAgOgogICAgICAgICA6ICJkMCIsICJkMSIsICJtZW1vcnki
CiAgICAgKTsKLSNlbHNlCi0gICAgc2l6ZV90IGNvdW50ID0gYnl0ZXMgLyA4OwotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKLSAgICAgICAgYml0d2lzZV9jYXN0PHZvbGF0
aWxlIHVpbnQ2NF90Kj4oZHN0KVtpXSA9IDA7CisjZWxzZSAKKyAgICBnY1NhZmVaZXJvTWVtb3J5
SGVscGVyKGRzdCwgYnl0ZXMpOwogI2VuZGlmIC8vIENQVShYODZfNjQpCiAjZWxzZQotICAgIHNp
emVfdCBjb3VudCA9IGJ5dGVzIC8gODsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50
OyArK2kpCi0gICAgICAgIGJpdHdpc2VfY2FzdDx2b2xhdGlsZSB1aW50NjRfdCo+KGRzdClbaV0g
PSAwOwotI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQotI2Vsc2UKLSAgICBtZW1z
ZXQoZHN0LCAwLCBieXRlcyk7Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKKyAgICBnY1NhZmVa
ZXJvTWVtb3J5SGVscGVyKGRzdCwgYnl0ZXMpOworI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpICYm
IENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392401</attachid>
            <date>2020-03-04 03:34:40 -0800</date>
            <delta_ts>2020-03-04 23:58:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20200304123438.patch</filename>
            <type>text/plain</type>
            <size>1481</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzE4YjU5Nzg5MjA4ZmRkNDNmYzVmYzBiNTQ3NTA5MWEzMjJhOTlhLi5iYzYwMzAwNWI5NmFhZDFl
NDg0MzMyYjA5ZTQwMjU0ZTdmNmM2YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0wMy0wNCAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBbSlNDT25seV0gMzItYml0cyB3YXJuaW5nIG9uIG1lbXNldCBvZiBKU1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyB3
YXJuaW5nIG9uIDMyYml0IGJ1aWxkcy4gVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEdDQyBrbm93
cworICAgICAgICBpdCBpcyBub3Qgc2FmZSB0byB1c2UgbWVtc2V0IG9uIG5vbi1QT0QgdHlwZXMg
YW5kIHdhcm5zIGFnYWluc3QgaXRzIHVzZS4KKworICAgICAgICAqIGhlYXAvR0NNZW1vcnlPcGVy
YXRpb25zLmg6CisgICAgICAgIChKU0M6OmdjU2FmZVplcm9NZW1vcnkpOgorCiAyMDIwLTAzLTAz
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIEZp
eGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciB0byBub3QgaGF2ZSBtZW1iZXIgZnVuY3Rpb25z
IHdoaWNoIGFyZSByZWFsbHkganVzdCBoZWxwZXIgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ01lbW9yeU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5oCmluZGV4IDI4MmQ3OTFkMWNlNWUw
MGYyN2RiZjUxOWU5MzllYjRjYjVmNDZiNGQuLmZmZjU1NmRhMDQ1NTFkZDA4NzJmNWMxZjdkNjU1
MjZlZWFiMzg1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVt
b3J5T3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5
T3BlcmF0aW9ucy5oCkBAIC0zMDYsNyArMzA2LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIGdjU2Fm
ZVplcm9NZW1vcnkoVCogZHN0LCBzaXplX3QgYnl0ZXMpCiAgICAgICAgIGJpdHdpc2VfY2FzdDx2
b2xhdGlsZSB1aW50NjRfdCo+KGRzdClbaV0gPSAwOwogI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19D
T01QQVRJQkxFKQogI2Vsc2UKLSAgICBtZW1zZXQoZHN0LCAwLCBieXRlcyk7CisgICAgbWVtc2V0
KChjaGFyICopZHN0LCAwLCBieXRlcyk7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392541</attachid>
            <date>2020-03-04 23:59:01 -0800</date>
            <delta_ts>2020-03-05 00:54:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204411-20200305085859.patch</filename>
            <type>text/plain</type>
            <size>1498</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzE4YjU5Nzg5MjA4ZmRkNDNmYzVmYzBiNTQ3NTA5MWEzMjJhOTlhLi5iYzYwMzAwNWI5NmFhZDFl
NDg0MzMyYjA5ZTQwMjU0ZTdmNmM2YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0wMy0wNCAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBbSlNDT25seV0gMzItYml0cyB3YXJuaW5nIG9uIG1lbXNldCBvZiBKU1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyB3
YXJuaW5nIG9uIDMyYml0IGJ1aWxkcy4gVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEdDQyBrbm93
cworICAgICAgICBpdCBpcyBub3Qgc2FmZSB0byB1c2UgbWVtc2V0IG9uIG5vbi1QT0QgdHlwZXMg
YW5kIHdhcm5zIGFnYWluc3QgaXRzIHVzZS4KKworICAgICAgICAqIGhlYXAvR0NNZW1vcnlPcGVy
YXRpb25zLmg6CisgICAgICAgIChKU0M6OmdjU2FmZVplcm9NZW1vcnkpOgorCiAyMDIwLTAzLTAz
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIEZp
eGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciB0byBub3QgaGF2ZSBtZW1iZXIgZnVuY3Rpb25z
IHdoaWNoIGFyZSByZWFsbHkganVzdCBoZWxwZXIgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ01lbW9yeU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5T3BlcmF0aW9ucy5oCmluZGV4IDI4MmQ3OTFkMWNlNWUw
MGYyN2RiZjUxOWU5MzllYjRjYjVmNDZiNGQuLmYyYjllMzg1YmM5NDg0ZDMwNDI0ZDAzOGUzYzhh
ZWYyZTUwYjRhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVt
b3J5T3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDTWVtb3J5
T3BlcmF0aW9ucy5oCkBAIC0zMDYsNyArMzA2LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIGdjU2Fm
ZVplcm9NZW1vcnkoVCogZHN0LCBzaXplX3QgYnl0ZXMpCiAgICAgICAgIGJpdHdpc2VfY2FzdDx2
b2xhdGlsZSB1aW50NjRfdCo+KGRzdClbaV0gPSAwOwogI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19D
T01QQVRJQkxFKQogI2Vsc2UKLSAgICBtZW1zZXQoZHN0LCAwLCBieXRlcyk7CisgICAgbWVtc2V0
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGRzdCksIDAsIGJ5dGVzKTsKICNlbmRpZiAvLyBVU0Uo
SlNWQUxVRTY0KQogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>