From 749c20d5d133283d32ad15d0d2bf9418a133cb4e Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Mon, 25 Jul 2005 19:52:20 +0000 Subject: [PATCH] On one of my systems (a not-too-current FreeBSD 5.x), libusb appears to have problems sending a control message (returns an "I/O error"). At least try to recover gracefully in the bening case where the user did not request a particular serial number, so we could continue anyway without knowing it. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@481 81a1dc3b-b13d-400b-aceb-764788c761c2 --- avrdude/ChangeLog | 4 ++++ avrdude/usb_libusb.c | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/avrdude/ChangeLog b/avrdude/ChangeLog index 3250d64f..33215fbc 100644 --- a/avrdude/ChangeLog +++ b/avrdude/ChangeLog @@ -1,3 +1,7 @@ +2005-07-25 Joerg Wunsch + + * usb_libusb.c: Catch benign errors when reading the serial #. + 2005-06-19 Joerg Wunsch * Makefile.am: Implement libusb-base USB transport for the diff --git a/avrdude/usb_libusb.c b/avrdude/usb_libusb.c index d7b98455..d53d04b9 100644 --- a/avrdude/usb_libusb.c +++ b/avrdude/usb_libusb.c @@ -117,7 +117,17 @@ static int usbdev_open(char * port, long baud) fprintf(stderr, "%s: usb_open(): cannot read serial number \"%s\"\n", progname, usb_strerror()); - exit(1); + /* + * On some systems, libusb appears to have + * problems sending control messages. Catch the + * benign case where the user did not request a + * particular serial number, so we could + * continue anyway. + */ + if (serno != NULL) + exit(1); /* no chance */ + else + strcpy(string, "[unknown]"); } if (verbose)