From nobody Fri Dec 19 11:52:30 2025 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA5D8208D0 for ; Sun, 7 Dec 2025 15:16:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765120569; cv=none; b=N5c/aYzwqYxMpGmafWakEr4o1UikYlkoLSiuReGjesNkTqcEq8XLi3g5s9ckGEra6GWryWwO4G8Q55wO5EORZZD5cWMJkOrzL+W/Zk4PrK4vgbqFJQwudWr1WVpj9M8oOq4AaX0bY/F11RwW4j1BX9Gn5FO1bdF5L5V54rXSjqI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765120569; c=relaxed/simple; bh=Hh3bWchJaClFdaxbrmt1tJ2RmenazGLYgV1LqYXzcMo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=XOPDiYVrnq6p1h0FXjJSXT/UyVK4NM1RIDSvE9v40RunPhzuHw5qntnxeR8lZ0an24CWw43zunE0l4AAa3hO8nVml8JLbm5dSFMkMl0PhxIY1yRU5dbAqu5NysDlXUHzAkOLZvJLzFO9gl3PuHst0qvx5R4yPV+ACgYod5DN/pg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=g2YCpRvb; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="g2YCpRvb" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-7bc248dc16aso2858852b3a.0 for ; Sun, 07 Dec 2025 07:16:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765120562; x=1765725362; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=dOwVN9mfGP9x9nqOzkMp2NF1E55nCwqERCAUAF8zvBQ=; b=g2YCpRvb45ZuPquetwT31DYNIlXXjWuKqcO2bBe0TP72Gtz79Vc7mHv18HrvQdqfp1 9vF8qqwx/9EzEvUFT36BJ4ANqR5Dvd0T2hKoxV4N2uRcpk+d22XAhc0BKccd8amBrtj/ p+w5amHyO51FWtWqSiv8WBHXKk0rDsax5eQAjMOdrqHVJobDpDOunUh2hb/o26HR2+5/ SeRJqMG1QJ0HL7djUeMMtyGJ0h8ad3AqPojTuZYiWC1EYjZJuOwx67JhJDCLrydBpdP8 Id2rh+SLpbtPQzcbGgc+49JIkG9YeirQw8gt/DzQv33egysf4HdsRuqPuCtuWrl8tm8G KEqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765120562; x=1765725362; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dOwVN9mfGP9x9nqOzkMp2NF1E55nCwqERCAUAF8zvBQ=; b=s0mHk9jCOrSW0NWg/ZJlxOMjTJYqiXXX49F9hYqc/FV5Iz8bjouqoiRa6LCMYFJ5FF ekD8uEUA/9OL3IFFBcNJUtal0Sde1wYZAO0XPJY9y0f+iaLzf7KSnu6juS0XrCPSBtat soXvhqTlnPUIgZy5CWI0fm2OOI90cSzalC7eBfs8Wy6Zt8axCnJIfLwKHp3xRvL9s00T lbYvOsrTDLqntCOg2m+sJk5z5lXieiR5/grkvRJxmq9G56eKH8kWyXzY424QGJzgcz9N tSKQQ/LDHh4LlDe1Gpd+LipQDjBHmgSp92y+w+RW14fRvRx5AUxPOznpPUfeKsvN/XDr YnKw== X-Gm-Message-State: AOJu0YxYssB+DW/3jV1h6TbkUsuicMnGuMDU7sOriHFuCWV+Rl8hX4sS y9rdB8AMvQU0wekCwzu7YTAK4H1pMmXwmeE01F4PBM8stgsnKhkn4cK1 X-Gm-Gg: ASbGncvwXIh/ZXzjUJYTC/48Ctjgn2mpwtgHGUJtlOtU9qxXO+f+5zwbPi0Z9DcE5df z2wklqGtPOZB8l75IjcI7JUh0r1NeXDzYxXWNXmUQPjML6HqAoEE62Va303nlMF3XGsGYCDPtPn if35OZ+8OlKGgNKO94YFizWXLI/n6ASV9hKKO9MrC1cXstuArQATNj19leamhGTzwlAgi9ajWEy bL7be27cwbwyTQPUlCNpzAM9+IBtH28ErkQ8ppTh/H2X65VZAxWwOAqKq95sqylRVYollyLTX/N cHS6nEaBqaKsS8UrhmvOK/j0gJZDRiZTjzytrevilsogeR7odfBYb5OFg2tomjInFEhQnvQ42J/ C4PO4b79Xa0v5LvS7vFumARKx7eZ4YkxUv78E+XsNUhthxm1U4wIIGOL4jfUpOoah/pGr3ojRGE qpNWDUXbTXhNIUBrp3DZCqj6fg X-Google-Smtp-Source: AGHT+IHg2IepontQxf2wtozXosugj2KovvQBBe4oX5X7wYNtAFaUAIomETjLZZeSvkSjkSOQvzdqGg== X-Received: by 2002:a05:6a20:394a:b0:342:9cb7:649d with SMTP id adf61e73a8af0-36617e80db9mr4555321637.26.1765120562406; Sun, 07 Dec 2025 07:16:02 -0800 (PST) Received: from gmail.com ([2402:e280:3e9b:22f:efe:2e55:f77f:8407]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c0222cf5f55sm317074a12.20.2025.12.07.07.16.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Dec 2025 07:16:01 -0800 (PST) From: Sumeet Pawnikar To: rafael@kernel.org, linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org, sumeet4linux@gmail.com Subject: [PATCH] powercap: sscanf return value error handling Date: Sun, 7 Dec 2025 20:45:48 +0530 Message-ID: <20251207151549.202452-1-sumeet4linux@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Inconsistent error handling for sscanf() return value check. It uses implicit boolean conversion instead of explicit return value check. The code checks if (!sscanf(...)) which is incorrect because: 1. sscanf returns the number of successfully parsed items 2. On success, it returns 1 (one item passed) 3. On failure, it returns 0 or EOF 4. The check 'if (!sscanf(...))' is wrong because it treats success (1) as failure All occurrences of sscanf() now uses explicit return value check. With this behavior it returns '-EINVAL' when parsing fails (returns 0 or EOF), and continues when parsing succeeds (returns 1). Signed-off-by: Sumeet Pawnikar --- drivers/powercap/powercap_sys.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sy= s.c index bdc65e040d17..e998454e4bf6 100644 --- a/drivers/powercap/powercap_sys.c +++ b/drivers/powercap/powercap_sys.c @@ -68,7 +68,7 @@ static ssize_t show_constraint_##_attr(struct device *dev= , \ int id; \ struct powercap_zone_constraint *pconst;\ \ - if (!sscanf(dev_attr->attr.name, "constraint_%d_", &id)) \ + if (sscanf(dev_attr->attr.name, "constraint_%d_", &id) !=3D 1) \ return -EINVAL; \ if (id >=3D power_zone->const_id_cnt) \ return -EINVAL; \ @@ -93,7 +93,7 @@ static ssize_t store_constraint_##_attr(struct device *de= v,\ int id; \ struct powercap_zone_constraint *pconst;\ \ - if (!sscanf(dev_attr->attr.name, "constraint_%d_", &id)) \ + if (sscanf(dev_attr->attr.name, "constraint_%d_", &id) !=3D 1) \ return -EINVAL; \ if (id >=3D power_zone->const_id_cnt) \ return -EINVAL; \ @@ -162,7 +162,7 @@ static ssize_t show_constraint_name(struct device *dev, ssize_t len =3D -ENODATA; struct powercap_zone_constraint *pconst; =20 - if (!sscanf(dev_attr->attr.name, "constraint_%d_", &id)) + if (sscanf(dev_attr->attr.name, "constraint_%d_", &id) !=3D 1) return -EINVAL; if (id >=3D power_zone->const_id_cnt) return -EINVAL; --=20 2.43.0