usb-linux: only cleanup in host_close when host_open was successful.
diff --git a/usb-linux.c b/usb-linux.c index a1b1444..a4dfe5c 100644 --- a/usb-linux.c +++ b/usb-linux.c
@@ -1158,9 +1158,9 @@ return 0; fail: - dev->fd = -1; - if (fd != -1) { - close(fd); + if (dev->fd != -1) { + close(dev->fd); + dev->fd = -1; } return -1; } @@ -1169,7 +1169,7 @@ { int i; - if (dev->fd == -1) { + if (dev->fd == -1 || !dev->dev.attached) { return -1; }