<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <meta name="generator" content="pandoc" />
  <title></title>
  <style type="text/css">code{white-space: pre;}</style>
</head>
<body>
<p>Hi,</p>
<p>Seems like today is the day where I make a lot of typos and silly mistakes.. right after sending the patch I realized that the bitfiddling is of course wrong.</p>
<p>I deeply apologize, and perhaps I could mention that I got news of illness recently in the family - so my mind is somewhat scattered at the moment.</p>
<hr style="height:1px;margin-bottom:20px;background-color:#ddd;color:#ddd" />
<p>In order to align something to a boundrary of 2, <code>(x + 1) & ~1</code> does the right thing, <code>( x + 1 ) ^ 1</code> does not make any sense whatsoever.</p>
<p>See attached patch for a correct implementation, and the below for a difference between the previous submitted, and the new one.</p>
<pre><code>-        ssize_t i_chunk_size = ( i_data_size + 8 + 1 ) ^ 1;
+        ssize_t i_chunk_size = ( i_data_size + 8 + 1 ) & ~1;</code></pre>
<p>Best regards,<br />
Filip</p>
<hr style="height:1px;margin-bottom:20px;background-color:#ddd;color:#ddd" />
<p>On 2016-10-29 00:10, Filip Roséen wrote:</p>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;color:#500050">
<pre><code> The previous implementation could potentially overflow the uint32_t
 holding the data-size when adding the size of the mandatory header, in
 order to consume the entire chunk. If that happened we could end up in
 an infinite loop (given that we are not guaranteed to make progress).

 These changes fixes the issue by introducing another variable that is
 only used for the purpose of storing the chunk (total) size.

 fixes #17562
 </code></pre>
</blockquote>
</body>
</html>