<div dir="ltr">And to pile on... Coverity thinks there is an out of bounds write in <span style="color:rgb(71,71,71);font-family:"helvetica neue",helvetica,arial,"lucida grande",sans-serif;font-size:12px;white-space:nowrap">xz_dec_lzma2.c:</span><div><br></div><div><a href="https://scan5.coverity.com/reports.htm#v29808/p10069/fileInstanceId=108959059&defectInstanceId=30877313&mergedDefectId=711586">https://scan5.coverity.com/reports.htm#v29808/p10069/fileInstanceId=108959059&defectInstanceId=30877313&mergedDefectId=711586</a><br></div><div><br></div><div><div>779         * All probabilities are initialized to the same value. This hack</div><div> 780         * makes the code smaller by avoiding a separate loop for each</div><div> 781         * probability array.</div><div> 782         *</div><div> 783         * This could be optimized so that only that part of literal</div><div> 784         * probabilities that are actually required. In the common case</div><div> 785         * we would write 12 KiB less.</div><div> 786         */</div><div>    <span class="gmail-Apple-tab-span" style="white-space:pre">    </span>1. alias: Assigning: probs = s->lzma.is_match[0]. probs now points to element 0 of s->lzma.is_match (which consists of 192 2-byte elements).</div><div> 787        probs = s->lzma.is_match[0];</div><div>    <span class="gmail-Apple-tab-span" style="white-space:pre">        </span>2. Condition i < 14134U /* 1846 + (1 << 4) * 768 */, taking true branch.</div><div>    <span class="gmail-Apple-tab-span" style="white-space:pre">        </span>4. Condition i < 14134U /* 1846 + (1 << 4) * 768 */, taking true branch.</div><div>    <span class="gmail-Apple-tab-span" style="white-space:pre">        </span>5. cond_at_most: Checking i < 14134U implies that i may be up to 14133 on the true branch.</div><div> 788        for (i = 0; i < PROBS_TOTAL; ++i)</div><div>    <span class="gmail-Apple-tab-span" style="white-space:pre">        </span>3. Jumping back to the beginning of the loop.</div><div>    <span class="gmail-Apple-tab-span" style="white-space:pre">    </span></div><div>CID 711586 (#1 of 1): Out-of-bounds write (OVERRUN)</div><div>6. overrun-local: Overrunning array of 192 2-byte elements at element index 14133 (byte offset 28266) by dereferencing pointer probs + i.</div><div> 789                probs[i] = RC_BIT_MODEL_TOTAL / 2;</div><div> 790</div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 10, 2017 at 3:41 AM, Sebastian Huber <span dir="ltr"><<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Just for reference:<br>
<br>
<a href="https://devel.rtems.org/ticket/2909" rel="noreferrer" target="_blank">https://devel.rtems.org/ticket<wbr>/2909</a><span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone   : <a href="tel:%2B49%2089%20189%2047%2041-16" value="+4989189474116" target="_blank">+49 89 189 47 41-16</a><br>
Fax     : <a href="tel:%2B49%2089%20189%2047%2041-09" value="+4989189474109" target="_blank">+49 89 189 47 41-09</a><br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brain<wbr>s.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
<br>
</font></span></blockquote></div><br></div>