int fd;
unsigned char device_desc[4096];
unsigned char* desc_current_ptr = NULL;
+ int is_registered = 0;
if (node == NULL) {
return -1;
if (USB_DT_DEVICE_SIZE != usb_dev->bLength) {
LOG_DEBUG("failed to get usb device descriptor\n");
+ close(fd);
return -1;
}
usb->node = prepend(&usb_list, usb);
LOG_DEBUG("-register new device (in: %04x, out: %04x) from %s\n", usb->end_point[0], usb->end_point[1], node);
+ is_registered = 1;
register_usb_transport(usb, usb_serial);
sdb_mutex_unlock(&usb_lock, "usb register unlocked");
}
}
}
}
+ if (is_registered == 0) {
+ close(fd);
+ }
return 0;
}