[lvc-project] [PATCH 5.10] crypto: lzo - Fix compression buffer overrun

Viktoriya Danchenko v.danchenko at omp.ru
Thu Jun 4 14:47:13 MSK 2026


Особой причины нет - переменная `int err` уже была смещена в исходнике ядра на устройство. Так и попала в бэкпорт-версию.

Исправить не проблема. Вышлю патч.


Освоить git send-email не проблема. В этом патче моя ошибка - поставила `To` вместо `Cc`.

________________________________
От: Fedor Pchelkin <pchelkin at ispras.ru>
Отправлено: 3 июня 2026 г. 19:06:45
Кому: Viktoriya Danchenko
Копия: lvc-project at linuxtesting.org
Тема: Re: [lvc-project] [PATCH 5.10] crypto: lzo - Fix compression buffer overrun

Письмо отправлено внешним отправителем. Не переходите по ссылкам и не открывайте вложения, если не уверены в их безопасности.

On Wed, 03. Jun 12:42, Viktoriya Danchenko wrote:
> From: Herbert Xu <herbert at gondor.apana.org.au>
>
> [ Upstream commit cc47f07234f72cbd8e2c973cdbf2a6730660a463 ]

Не забывайте, git send-email любит ставить в копию автоматических
адресатов из тела патча, которым не всё следует отправлять.  См.
https://portal.linuxtesting.ru/How-to-send-patches-to-kernel.html#Отправка

> @@ -312,6 +347,7 @@ int lzogeneric1x_1_compress(const unsigned char *in, size_t in_len,
>       size_t t = 0;
>       signed char state_offset = -2;
>       unsigned int m4_max_offset;
> +     int err;

Есть какая-то причина, почему переменная `int err` в бэкпорт-версии
определяется для всей функции, а не внутри цикла while на пару десятков
строк ниже, как делает апстримный коммит?

Там где возможно, лучше не отступать от апстрима - здесь не совсем
понятно, зачем это было произведено.

>
>       // LZO v0 will never write 17 as first byte (except for zero-length
>       // input), so this is used to version the bitstream
> @@ -332,10 +368,12 @@ int lzogeneric1x_1_compress(const unsigned char *in, size_t in_len,
>                       break;
>               BUILD_BUG_ON(D_SIZE * sizeof(lzo_dict_t) > LZO1X_1_MEM_COMPRESS);
>               memset(wrkmem, 0, D_SIZE * sizeof(lzo_dict_t));
> -             t = lzo1x_1_do_compress(ip, ll, op, out_len, t, wrkmem,
> -                                     &state_offset, bitstream_version);
> +             err = LZO_SAFE(lzo1x_1_do_compress)(
> +                     ip, ll, &op, op_end, &t, wrkmem,
> +                     &state_offset, bitstream_version);
> +             if (err != LZO_E_OK)
> +                     return err;
>               ip += ll;
> -             op += *out_len;
>               l  -= ll;
>       }
>       t += l;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://linuxtesting.org/pipermail/lvc-project/attachments/20260604/a570d4da/attachment.html>


More information about the lvc-project mailing list