Message ID | 20231005111757.1293740-1-darcari@redhat.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | thermal: intel: powerclamp: fix mismatch in get function for max_idle | expand |
On Thu, 2023-10-05 at 07:17 -0400, David Arcari wrote: > 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: "Rafael J. Wysocki" <rafael@kernel.org> > Cc: Daniel Lezcano <daniel.lezcano@linaro.org> > Cc: Amit Kucheria <amitk@kernel.org> > Cc: Zhang Rui <rui.zhang@intel.com> > Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> > Cc: David Arcari <darcari@redhat.com> > Cc: Chen Yu <yu.c.chen@intel.com> > Cc: linux-kernel@vger.kernel.org > Cc: stable@vger.kernel.org > Signed-off-by: David Arcari <darcari@redhat.com> Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> > --- > drivers/thermal/intel/intel_powerclamp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/thermal/intel/intel_powerclamp.c > b/drivers/thermal/intel/intel_powerclamp.c > index 36243a3972fd..5ac5cb60bae6 100644 > --- a/drivers/thermal/intel/intel_powerclamp.c > +++ b/drivers/thermal/intel/intel_powerclamp.c > @@ -256,7 +256,7 @@ static int max_idle_set(const char *arg, const > struct kernel_param *kp) > > static const struct kernel_param_ops max_idle_ops = { > .set = max_idle_set, > - .get = param_get_int, > + .get = param_get_byte, > }; > > module_param_cb(max_idle, &max_idle_ops, &max_idle, 0644);
diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c index 36243a3972fd..5ac5cb60bae6 100644 --- a/drivers/thermal/intel/intel_powerclamp.c +++ b/drivers/thermal/intel/intel_powerclamp.c @@ -256,7 +256,7 @@ static int max_idle_set(const char *arg, const struct kernel_param *kp) static const struct kernel_param_ops max_idle_ops = { .set = max_idle_set, - .get = param_get_int, + .get = param_get_byte, }; module_param_cb(max_idle, &max_idle_ops, &max_idle, 0644);
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: "Rafael J. Wysocki" <rafael@kernel.org> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Amit Kucheria <amitk@kernel.org> Cc: Zhang Rui <rui.zhang@intel.com> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Cc: David Arcari <darcari@redhat.com> Cc: Chen Yu <yu.c.chen@intel.com> Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org Signed-off-by: David Arcari <darcari@redhat.com> --- drivers/thermal/intel/intel_powerclamp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)