Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

thermal: intel: powerclamp: fix mismatch in get function for max_idle

KASAN reported this

[ 444.853098] BUG: KASAN: global-out-of-bounds in param_get_int+0x77/0x90
[ 444.853111] Read of size 4 at addr ffffffffc16c9220 by task cat/2105
...
[ 444.853442] The buggy address belongs to the variable:
[ 444.853443] max_idle+0x0/0xffffffffffffcde0 [intel_powerclamp]

There is a mismatch between the param_get_int and the definition of
max_idle. Replacing param_get_int with param_get_byte resolves this
issue.

Fixes: ebf519710218 ("thermal: intel: powerclamp: Add two module parameters")
Cc: 6.3+ <stable@vger.kernel.org> # 6.3+
Signed-off-by: David Arcari <darcari@redhat.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

David Arcari and committed by
Rafael J. Wysocki
fae633cf cd3c00e7

+1 -1
+1 -1
drivers/thermal/intel/intel_powerclamp.c
··· 256 256 257 257 static const struct kernel_param_ops max_idle_ops = { 258 258 .set = max_idle_set, 259 - .get = param_get_int, 259 + .get = param_get_byte, 260 260 }; 261 261 262 262 module_param_cb(max_idle, &max_idle_ops, &max_idle, 0644);