fix segfautl when using mehfet with no vid/pid specified

This commit is contained in:
Triss 2021-10-11 12:44:19 +02:00
parent d6e6c91ea7
commit bafd1465c9
2 changed files with 7 additions and 5 deletions

View File

@ -553,11 +553,11 @@ static void mehfet_destroy(device_t dev_base) {
printc_dbg("mehfet: releasing device & disconnecting\n"); printc_dbg("mehfet: releasing device & disconnecting\n");
#endif #endif
jtag_release_device(&dev->jtag, 0xfffe); // 0xfffe=reset address : POR
mehfet_cmd_disconnect(dev->trans);
if (dev->trans) { if (dev->trans) {
jtag_release_device(&dev->jtag, 0xfffe); // 0xfffe=reset address : POR
mehfet_cmd_disconnect(dev->trans);
dev->trans->ops->destroy(dev->trans); dev->trans->ops->destroy(dev->trans);
dev->trans = NULL; dev->trans = NULL;
} }

View File

@ -241,6 +241,8 @@ transport_t mehfet_transport_open(const char *devpath,
dev = usbutil_find_by_id(*vendor, *product, requested_serial); dev = usbutil_find_by_id(*vendor, *product, requested_serial);
if (!dev) { if (!dev) {
printc_err("mehfet: no USB device found.%s\n",
vendor ? "" : " (Did you forget to specify a VID:PID?)");
free(tr); free(tr);
return NULL; return NULL;
} }
@ -248,7 +250,7 @@ transport_t mehfet_transport_open(const char *devpath,
tr->buf_size = 64; // initial conservative value, will get updated later tr->buf_size = 64; // initial conservative value, will get updated later
if (open_device(tr, dev) < 0) { if (open_device(tr, dev) < 0) {
printc_err("ftdi: failed to open device\n"); printc_err("mehfet: failed to open device\n");
free(tr); free(tr);
return NULL; return NULL;
} }