From: Ahmad Fatoum <[email protected]>
devunbind on a device without a driver crashes in get_device_remove(),
which dereferences dev->driver unchecked. Print a message instead.
-f is not affected, unregistering an unbound device is fine.
Fixes: 4d515afe56eb ("driver: make CONFIG_DEBUG_PROBES more useful for removal")
Assisted-by: Claude:fable-5.1
Signed-off-by: Ahmad Fatoum <[email protected]>
---
commands/devunbind.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/commands/devunbind.c b/commands/devunbind.c
index d30193b28527..76dd0b715e6e 100644
--- a/commands/devunbind.c
+++ b/commands/devunbind.c
@@ -52,6 +52,12 @@ static int do_devunbind(int argc, char *argv[])
continue;
}
+ if (!dev->driver) {
+ printf("%s is not bound to a driver\n", argv[i]);
+ ret = COMMAND_ERROR;
+ continue;
+ }
+
if (!device_remove(dev)) {
printf("no remove callback registered for %s\n",
argv[i]);
ret = COMMAND_ERROR;
--
2.47.3