<div dir="ltr"><div style="color:rgb(0,0,0);font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px 0px 0px 8px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="color:rgba(0,0,0,0.85);font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";display:flex;padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";display:flex;padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";display:grid;padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";display:flex;padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";display:flex;padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="color:rgb(0,0,0);font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)">Rename test_l4_cksum_multi_mbufs to test_l4_cksum_mbuf_chain, resolve double-free issue.</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div style="color:rgb(0,0,0);font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"><div style="font-style:normal;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;line-height:24px;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:0px;margin:0px;background:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0)"></div></div></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Fri, Jul 3, 2026 at 10:41 PM Stephen Hemminger <<a href="mailto:stephen@networkplumber.org">stephen@networkplumber.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 18 Jun 2026 14:32:42 +0800<br>
Su Sai <<a href="mailto:spiderdetective.ss@gmail.com" target="_blank">spiderdetective.ss@gmail.com</a>> wrote:<br>
<br>
> The rte_raw_cksum_mbuf function is used to compute<br>
> the raw checksum of a packet.<br>
> If the packet payload stored in multi mbuf, the function<br>
> will goto the hard case. In hard case,<br>
> the variable 'tmp' is a type of uint32_t,<br>
> so rte_bswap16 will drop high 16 bit.<br>
> Meanwhile, the variable 'sum' is a type of uint32_t,<br>
> so 'sum += tmp' will drop the carry when overflow.<br>
> Both drop will make cksum incorrect.<br>
> This commit fixes the above bug.<br>
> <br>
> Signed-off-by: Su Sai <<a href="mailto:spiderdetective.ss@gmail.com" target="_blank">spiderdetective.ss@gmail.com</a>><br>
> Acked-by: Marat Khalili <<a href="mailto:marat.khalili@huawei.com" target="_blank">marat.khalili@huawei.com</a>><br>
> ---<br>
<br>
Still one error in the test.<br>
<br>
Error — double-free in test_l4_cksum_multi_mbufs() (app/test/test_cksum.c)<br>
The segments are chained into one packet (rte_pktmbuf_chain sets<br>
m[0]->next = m[1], m[1]->next = m[2]), but cleanup then calls<br>
rte_pktmbuf_free_bulk(m, segs_len) over the array.<br>
rte_pktmbuf_free_bulk walks the ->next chain of each array element, so<br>
index 0 frees the entire chain (m[0], m[1], m[2]), and indices 1 and 2<br>
then free m[1]/m[2] a second time. This fires on the normal success<br>
path every run, and on the fail path whenever ≥2 segments were chained<br>
— a debug/ASAN build will abort on the sanity check, and a normal build<br>
corrupts pool accounting. The array-of-independent-mbufs contract that<br>
free_bulk expects doesn't hold here because the elements alias one<br>
chain. Free the chain once through its head:<br>
</blockquote></div>