[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