Message ID | 20230314181256.15283-1-todd.e.brandt@intel.com |
---|---|
State | Superseded |
Headers | show |
Series | [v4] HID:hid-sensor-custom: Fix buffer overrun in device name | expand |
On Tue, 2023-03-14 at 11:12 -0700, Todd Brandt wrote: > On some platforms there are some platform devices created with > invalid names. For example: "HID-SENSOR-INT-020b?.39.auto" instead > of "HID-SENSOR-INT-020b.39.auto" > > This string include some invalid characters, hence it will fail to > properly load the driver which will handle this custom sensor. Also > it is a problem for some user space tools, which parses the device > names from ftrace and dmesg. > > This is because the string, real_usage, is not NULL terminated and > printed with %s to form device name. > > To address this, initialize the real_usage string with 0s. > > Reported-and-tested-by: Todd Brandt <todd.e.brandt@linux.intel.com> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=217169 > Fixes: 98c062e82451 ("HID: hid-sensor-custom: Allow more custom iio > sensors") > Cc: stable@vger.kernel.org > Suggested-by: Philipp Jungkamp <p.jungkamp@gmx.net> > Signed-off-by: Philipp Jungkamp <p.jungkamp@gmx.net> > Signed-off-by: Todd Brandt <todd.e.brandt@intel.com> > Reviewed-by: Andi Shyti <andi.shyti@kernel.org> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> > --- > Changes in v4: > - add the Fixes line > - add patch version change list > Changes in v3: > - update the changelog > - add proper reviewed/signed/suggested links > Changes in v2: > - update the changelog > > drivers/hid/hid-sensor-custom.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid- > sensor-custom.c > index 3e3f89e01d81..d85398721659 100644 > --- a/drivers/hid/hid-sensor-custom.c > +++ b/drivers/hid/hid-sensor-custom.c > @@ -940,7 +940,7 @@ hid_sensor_register_platform_device(struct > platform_device *pdev, > struct hid_sensor_hub_device > *hsdev, > const struct > hid_sensor_custom_match *match) > { > - char real_usage[HID_SENSOR_USAGE_LENGTH]; > + char real_usage[HID_SENSOR_USAGE_LENGTH] = { 0 }; > struct platform_device *custom_pdev; > const char *dev_name; > char *c;
On Tue, 14 Mar 2023, Todd Brandt wrote: > On some platforms there are some platform devices created with > invalid names. For example: "HID-SENSOR-INT-020b?.39.auto" instead > of "HID-SENSOR-INT-020b.39.auto" > > This string include some invalid characters, hence it will fail to > properly load the driver which will handle this custom sensor. Also > it is a problem for some user space tools, which parses the device > names from ftrace and dmesg. > > This is because the string, real_usage, is not NULL terminated and > printed with %s to form device name. > > To address this, initialize the real_usage string with 0s. > > Reported-and-tested-by: Todd Brandt <todd.e.brandt@linux.intel.com> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=217169 > Fixes: 98c062e82451 ("HID: hid-sensor-custom: Allow more custom iio sensors") > Cc: stable@vger.kernel.org > Suggested-by: Philipp Jungkamp <p.jungkamp@gmx.net> > Signed-off-by: Philipp Jungkamp <p.jungkamp@gmx.net> > Signed-off-by: Todd Brandt <todd.e.brandt@intel.com> > Reviewed-by: Andi Shyti <andi.shyti@kernel.org> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > --- > Changes in v4: > - add the Fixes line > - add patch version change list > Changes in v3: > - update the changelog > - add proper reviewed/signed/suggested links > Changes in v2: > - update the changelog Applied to for-6.3/upstream-fixes, thanks.
diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custom.c index 3e3f89e01d81..d85398721659 100644 --- a/drivers/hid/hid-sensor-custom.c +++ b/drivers/hid/hid-sensor-custom.c @@ -940,7 +940,7 @@ hid_sensor_register_platform_device(struct platform_device *pdev, struct hid_sensor_hub_device *hsdev, const struct hid_sensor_custom_match *match) { - char real_usage[HID_SENSOR_USAGE_LENGTH]; + char real_usage[HID_SENSOR_USAGE_LENGTH] = { 0 }; struct platform_device *custom_pdev; const char *dev_name; char *c;