drivers/hid/hid-magicmouse.c | 5 +++++ 1 file changed, 5 insertions(+)
Fake USB devices can send their own report descriptors for which the
input_mapping() hook does not get called. In this case, msc->input stays NULL,
leading to a crash at a later time.
Detect this condition in the input_configured() hook and reject the device.
This is not supposed to happen with actual magic mouse devices, but can be
provoked by imposing as a magic mouse USB device.
Cc: stable@vger.kernel.org
Signed-off-by: Günther Noack <gnoack@google.com>
---
drivers/hid/hid-magicmouse.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index 6e7c189f4d1d..b8932f02b6ee 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -726,6 +726,11 @@ static int magicmouse_input_configured(struct hid_device *hdev,
struct magicmouse_sc *msc = hid_get_drvdata(hdev);
int ret;
+ if (!msc->input) {
+ hid_err(hdev, "magicmouse setup input failed (no input)");
+ return -EINVAL;
+ }
+
ret = magicmouse_setup_input(msc->input, hdev);
if (ret) {
hid_err(hdev, "magicmouse setup input failed (%d)\n", ret);
--
2.52.0.457.g6b5491de43-goog
On Fri, 9 Jan 2026, Günther Noack wrote: > Fake USB devices can send their own report descriptors for which the > input_mapping() hook does not get called. In this case, msc->input stays N= > ULL, > leading to a crash at a later time. > > Detect this condition in the input_configured() hook and reject the device. > > This is not supposed to happen with actual magic mouse devices, but can be > provoked by imposing as a magic mouse USB device. Applied to hid.git#for-6.19/upstream-fixes, thanks Guenther. -- Jiri Kosina SUSE Labs
© 2016 - 2026 Red Hat, Inc.