[lvc-project] Fwd: [PATCH] firmware_loader: prevent integer overflow in firmware_loading_timeout()
Sergey Shtylyov
s.shtylyov at omp.ru
Tue Jul 8 23:28:32 MSK 2025
On 7/8/25 12:14 PM, Fedor Pchelkin wrote:
> On Fri, 04. Jul 16:30, Sergey Shtylyov wrote:
>> Прошу прощения - забыл добавить lvc-project в CC...
>>
>> -------- Forwarded Message --------
>> Subject: [PATCH] firmware_loader: prevent integer overflow in firmware_loading_timeout()
>> Date: Thu, 3 Jul 2025 23:38:33 +0300
>> From: Sergey Shtylyov <s.shtylyov at omp.ru>
>> Organization: Open Mobile Platform
>> To: Luis Chamberlain <mcgrof at kernel.org>, Russ Weight <russ.weight at linux.dev>, Danilo Krummrich <dakr at kernel.org>, Greg Kroah-Hartman <gregkh at linuxfoundation.org>, Rafael J. Wysocki <rafael at kernel.org>, linux-kernel at vger.kernel.org
>>
>> In firmware_loading_timeout(), *int* result of __firmware_loading_timeout()
>> multiplied by HZ might overflow before being implicitly cast to *long* when
>> being returned. Rewrite the function using check_mul_overflow() and capping
>> the result at LONG_MAX on actual overflow...
>>
>> Found by Linux Verification Center (linuxtesting.org) with the Svace static
>> analysis tool.
>>
>> Signed-off-by: Sergey Shtylyov <s.shtylyov at omp.ru>
>> Cc: stable at vger.kernel.org
>>
>
>
> Спасибо за патчи!
>
> Но для целенаправленного добавления текущего патча на firmware_loader и
> похожего с таймаутами на nfs4 в LVC-ветки вроде как нет особых причин. В
Я, собственно, из-за того, что проблема обнаружена Svace, форварднул...
> Свейсере сработки помечены как Minor, насколько вижу.
Да.
Что касается firmware_loader, таймаут может менять root через запись в
/sys/class/firmware/timeout, если не ошибаюсь... Причём переполнение возможно
и за счёт того, что в timeout_store() вызывается simple_strtol(), и его результат
затем усекается до *int*... :-/
[...]
MBR, Sergey
More information about the lvc-project
mailing list