]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
usb: typec: ucsi: displayport: Fix NULL pointer dereference
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Wed, 11 Mar 2020 13:00:05 +0000 (16:00 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Mar 2020 08:34:52 +0000 (09:34 +0100)
If the registration of the DisplayPort was not successful,
or if the port does not support DisplayPort alt mode in the
first place, the function ucsi_displayport_remove_partner()
will fail with NULL pointer dereference when it attempts to
access the driver data.

Adding a check to the function to make sure there really is
driver data for the device before modifying it.

Fixes: af8622f6a585 ("usb: typec: ucsi: Support for DisplayPort alt mode")
Reported-by: Andrea Gagliardi La Gala <andrea.lagala@gmail.com>
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=206365
Cc: stable@vger.kernel.org
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200311130006.41288-2-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/displayport.c

index 0f1273ae086cbba1ab8df9bf1083fba727f6486e..261131c9e37c63a05b0f52adad5ed10bfae80553 100644 (file)
@@ -271,6 +271,9 @@ void ucsi_displayport_remove_partner(struct typec_altmode *alt)
                return;
 
        dp = typec_altmode_get_drvdata(alt);
+       if (!dp)
+               return;
+
        dp->data.conf = 0;
        dp->data.status = 0;
        dp->initialized = false;