From nobody Wed Dec 17 17:31:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5729BC6FD18 for ; Tue, 18 Apr 2023 13:08:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232366AbjDRNIC (ORCPT ); Tue, 18 Apr 2023 09:08:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232203AbjDRNHx (ORCPT ); Tue, 18 Apr 2023 09:07:53 -0400 Received: from exchange.fintech.ru (e10edge.fintech.ru [195.54.195.159]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6F63115A25; Tue, 18 Apr 2023 06:07:50 -0700 (PDT) Received: from Ex16-01.fintech.ru (10.0.10.18) by exchange.fintech.ru (195.54.195.159) with Microsoft SMTP Server (TLS) id 14.3.498.0; Tue, 18 Apr 2023 16:07:47 +0300 Received: from localhost (10.0.253.138) by Ex16-01.fintech.ru (10.0.10.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Tue, 18 Apr 2023 16:07:47 +0300 From: Nikita Zhandarovich To: "Rafael J. Wysocki" CC: Nikita Zhandarovich , Kevin Hilman , Ulf Hansson , Len Brown , Pavel Machek , Greg Kroah-Hartman , , , Subject: [PATCH] PM: domains: fix integer overflow issues in genpd_parse_state() Date: Tue, 18 Apr 2023 06:07:43 -0700 Message-ID: <20230418130743.67024-1-n.zhandarovich@fintech.ru> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.0.253.138] X-ClientProxiedBy: Ex16-02.fintech.ru (10.0.10.19) To Ex16-01.fintech.ru (10.0.10.18) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Currently, while calculating residency and latency values, right operands may overflow if resulting values are big enough. To prevent this, albeit unlikely case, play it safe and convert right operands to left ones' type s64. Found by Linux Verification Center (linuxtesting.org) with static analysis tool SVACE. Fixes: 30f604283e05 ("PM / Domains: Allow domain power states to be read fr= om DT") Signed-off-by: Nikita Zhandarovich Acked-by: Ulf Hansson --- drivers/base/power/domain.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 32084e38b73d..51b9d4eaab5e 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -2939,10 +2939,10 @@ static int genpd_parse_state(struct genpd_power_sta= te *genpd_state, =20 err =3D of_property_read_u32(state_node, "min-residency-us", &residency); if (!err) - genpd_state->residency_ns =3D 1000 * residency; + genpd_state->residency_ns =3D 1000LL * residency; =20 - genpd_state->power_on_latency_ns =3D 1000 * exit_latency; - genpd_state->power_off_latency_ns =3D 1000 * entry_latency; + genpd_state->power_on_latency_ns =3D 1000LL * exit_latency; + genpd_state->power_off_latency_ns =3D 1000LL * entry_latency; genpd_state->fwnode =3D &state_node->fwnode; =20 return 0; --=20 2.25.1