mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
x86_energy_perf_policy: Bound package iteration
Add explicit bounds checking against MAX_PACKAGES in for_packages() to prevent potential out-of-bounds bit shift operations. Also, use consistent shift idiom: (1ULL << pkg_num) Assisted-by: GitHub-Copilot:Claude-Sonnet-4.6 Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
128c6fd2af
commit
d865b3810b
|
|
@ -509,7 +509,7 @@ void parse_cmdline_pkg(char *s)
|
|||
while (pkg <= end_pkg) {
|
||||
if (pkg > max_pkg_num)
|
||||
errx(1, "Requested pkg%d exceeds max pkg%d", pkg, max_pkg_num);
|
||||
pkg_selected_set |= 1 << pkg;
|
||||
pkg_selected_set |= 1ULL << pkg;
|
||||
pkg++;
|
||||
}
|
||||
startp = endp;
|
||||
|
|
@ -526,7 +526,7 @@ void parse_cmdline_pkg(char *s)
|
|||
if (startp == endp || errno == ERANGE || pkg < 0 || pkg > max_pkg_num)
|
||||
errx(1, "Confused by pkg '%s'", startp);
|
||||
|
||||
pkg_selected_set |= 1 << pkg;
|
||||
pkg_selected_set |= 1ULL << pkg;
|
||||
startp = endp;
|
||||
}
|
||||
}
|
||||
|
|
@ -535,8 +535,8 @@ void for_packages(unsigned long long pkg_set, int (func) (int))
|
|||
{
|
||||
int pkg_num;
|
||||
|
||||
for (pkg_num = 0; pkg_num <= max_pkg_num; ++pkg_num) {
|
||||
if (pkg_set & (1UL << pkg_num))
|
||||
for (pkg_num = 0; pkg_num <= max_pkg_num && pkg_num < MAX_PACKAGES; ++pkg_num) {
|
||||
if (pkg_set & (1ULL << pkg_num))
|
||||
func(pkg_num);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user