diff options
author | Colin Ian King <colin.king@canonical.com> | 2018-07-04 15:34:06 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-07-06 17:36:19 +0300 |
commit | 9920184d78edeccd165832d54d6203fae4c860f5 (patch) | |
tree | b1e52ab458c7f0d9fe38c10e52b1dc02ba4c4aaf /drivers/usb/typec/bus.c | |
parent | 6f3fde684d0232e66ada3410f016a58e09a87689 (diff) | |
download | linux-9920184d78edeccd165832d54d6203fae4c860f5.tar.xz |
usb: typec: fix dereference before null check on adev
Pointer adev is being dereferenced before it is being sanity
checked with a null pointer check, hence it is possible for
a null pointer dereference to occur. Fix this by dereferencing
adev only once it is null checked.
Detected by CoverityScan, CID#1471598 ("Dereference before null check")
Fixes: 8a37d87d72f0 ("usb: typec: Bus type for alternate modes")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/typec/bus.c')
-rw-r--r-- | drivers/usb/typec/bus.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/typec/bus.c b/drivers/usb/typec/bus.c index 999d7904172a..95a2b10127db 100644 --- a/drivers/usb/typec/bus.c +++ b/drivers/usb/typec/bus.c @@ -51,7 +51,7 @@ static int typec_altmode_set_state(struct typec_altmode *adev, int state) int typec_altmode_notify(struct typec_altmode *adev, unsigned long conf, void *data) { - bool is_port = is_typec_port(adev->dev.parent); + bool is_port; struct altmode *altmode; struct altmode *partner; int ret; @@ -64,6 +64,7 @@ int typec_altmode_notify(struct typec_altmode *adev, if (!altmode->partner) return -ENODEV; + is_port = is_typec_port(adev->dev.parent); partner = altmode->partner; ret = typec_altmode_set_mux(is_port ? altmode : partner, (u8)conf); |