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


Reply via email to