pm: Fix wrong type promotion

In pm_system_suspend there is a possible invalid type promotion
in sys_clock_set_timeout(MAX(0, ticks - exit_latency_ticks), true);

ticks is int32_t and exit_latency_ticks is uint32_t consequently
ticks is promoted to uint32_t resulting in a possible underflow and
setting a wrong value in sys_clock_set_timeout().

Fixes #100005
Coverity CID: 535628

Signed-off-by: Flavio Ceolin <flavio@hubblenetwork.com>
This commit is contained in:
Flavio Ceolin
2026-01-20 09:21:02 -08:00
committed by Anas Nashif
parent 53e6b7d543
commit 59a57722ae

View File

@@ -214,7 +214,7 @@ bool pm_system_suspend(int32_t kernel_ticks)
* is not passed as the next timeout.
*
*/
sys_clock_set_timeout(MAX(0, ticks - exit_latency_ticks), true);
sys_clock_set_timeout(MAX(0, (int64_t)ticks - (int64_t)exit_latency_ticks), true);
}
/*