diff options
author | Pali Rohár <pali.rohar@gmail.com> | 2014-11-18 20:15:14 +0100 |
---|---|---|
committer | Pali Rohár <pali.rohar@gmail.com> | 2014-11-18 20:15:14 +0100 |
commit | 8c788bad62ff31f1034e92144ccfc19b0883121e (patch) | |
tree | dd8fd1b4f80d98706c0936a0c7df6c06507bd1f3 | |
parent | 142ef93ddc8fe78c136547f2d127502aacc633e4 (diff) | |
download | 0xFFFF-8c788bad62ff31f1034e92144ccfc19b0883121e.tar.bz2 |
nolo: Do not call NOLO_ERROR_LOG when not needed
-rw-r--r-- | src/nolo.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -84,12 +84,14 @@ static void nolo_error_log(struct usb_device_info * dev, int only_clear) { char buf[2048]; size_t i, count; + int ret; for ( count = 0; count < 20; ++count ) { memset(buf, 0, sizeof(buf)); - if ( usb_control_msg(dev->udev, NOLO_QUERY, NOLO_ERROR_LOG, 0, 0, buf, sizeof(buf), 2000) <= 0 ) + ret = usb_control_msg(dev->udev, NOLO_QUERY, NOLO_ERROR_LOG, 0, 0, buf, sizeof(buf), 2000); + if ( ret < 0 ) break; if ( ! only_clear ) { @@ -103,6 +105,9 @@ static void nolo_error_log(struct usb_device_info * dev, int only_clear) { } + if ( (size_t)ret < sizeof(buf) ) + break; + } } @@ -180,11 +185,10 @@ static int nolo_get_version_string(struct usb_device_info * dev, const char * st return -1; ret = nolo_get_string(dev, buf, out, size); - - nolo_error_log(dev, 1); - - if ( ret < 0 ) + if ( ret < 0 ) { + nolo_error_log(dev, 1); return ret; + } if ( ! out[0] ) return -1; |