Commit f7a4c78b authored by Lee Jones's avatar Lee Jones Committed by Benjamin Tissoires
Browse files

HID: logitech-hidpp: Prevent use-after-free on force feedback initialisation failure



Presently, if the force feedback initialisation fails when probing the
Logitech G920 Driving Force Racing Wheel for Xbox One, an error number
will be returned and propagated before the userspace infrastructure
(sysfs and /dev/input) has been torn down.  If userspace ignores the
errors and continues to use its references to these dangling entities, a
UAF will promptly follow.

We have 2 options; continue to return the error, but ensure that all of
the infrastructure is torn down accordingly or continue to treat this
condition as a warning by emitting the message but returning success.
It is thought that the original author's intention was to emit the
warning but keep the device functional, less the force feedback feature,
so let's go with that.

Signed-off-by: default avatarLee Jones <lee@kernel.org>
Reviewed-by: default avatarGünther Noack <gnoack@google.com>
Signed-off-by: default avatarBenjamin Tissoires <bentiss@kernel.org>
parent 2b658c1c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -4487,10 +4487,12 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id)
		if (!ret)
			ret = hidpp_ff_init(hidpp, &data);

		if (ret)
		if (ret) {
			hid_warn(hidpp->hid_dev,
		     "Unable to initialize force feedback support, errno %d\n",
				 ret);
			ret = 0;
		}
	}

	/*