Re: [PATCH net v2] strparser: Fix signed/unsigned mismatch bug

From: Sabrina Dubroca

Date: Fri Nov 07 2025 - 10:01:48 EST


2025-11-06, 16:28:33 -0600, Nate Karstens wrote:
> The `len` member of the sk_buff is an unsigned int. This is cast to
> `ssize_t` (a signed type) for the first sk_buff in the comparison,
> but not the second sk_buff. On 32-bit systems, this can result in
> an integer underflow for certain values because unsigned arithmetic
> is being used.
>
> This appears to be an oversight: if the intention was to use unsigned
> arithmetic, then the first cast would have been omitted. The change
> ensures both len values are cast to `ssize_t`.
>
> The underflow causes an issue with ktls when multiple TLS PDUs are
> included in a single TCP segment. The mainline kernel does not use
> strparser for ktls anymore, but this is still useful for other
> features that still use strparser, and for backporting.
>
> Signed-off-by: Nate Karstens <nate.karstens@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 43a0c6751a32 ("strparser: Stream parser for messages")
> ---
> net/strparser/strparser.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Sabrina Dubroca <sd@xxxxxxxxxxxxxxx>

Thanks Nate.

--
Sabrina