[lvc-project] [PATCH 5.10] crypto: lzo - Fix compression buffer overrun
Fedor Pchelkin
pchelkin at ispras.ru
Wed Jun 3 19:06:45 MSK 2026
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;
More information about the lvc-project
mailing list