X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Funi-t-dmm%2Fprotocol.c;h=94abb16bc8ae1277d07d5bf8511999803469c8e6;hb=755793e991c4d429f99254f23008bfddb89d8e00;hp=4114aec4d831954ccc5d4f705112088a740a764d;hpb=91057d2fc24c0ca058aa08c8ea6ada4eadf05ffd;p=libsigrok.git diff --git a/src/hardware/uni-t-dmm/protocol.c b/src/hardware/uni-t-dmm/protocol.c index 4114aec4..94abb16b 100644 --- a/src/hardware/uni-t-dmm/protocol.c +++ b/src/hardware/uni-t-dmm/protocol.c @@ -103,7 +103,6 @@ static int hid_chip_init(struct sr_dev_inst *sdi, uint16_t baudrate) usb = sdi->conn; - /* Detach kernel drivers which grabbed this device (if any). */ if (libusb_kernel_driver_active(usb->devhdl, 0) == 1) { ret = libusb_detach_kernel_driver(usb->devhdl, 0); if (ret < 0) { @@ -113,7 +112,6 @@ static int hid_chip_init(struct sr_dev_inst *sdi, uint16_t baudrate) } } - /* Claim interface 0. */ if ((ret = libusb_claim_interface(usb->devhdl, 0)) < 0) { sr_err("Failed to claim interface 0: %s.", libusb_error_name(ret)); @@ -260,8 +258,8 @@ static int get_and_handle_data(struct sr_dev_inst *sdi) } /* Move remaining bytes to beginning of buffer. */ - for (i = 0; i < devc->buflen - devc->bufoffset; i++) - pbuf[i] = pbuf[devc->bufoffset + i]; + if (devc->bufoffset < devc->buflen) + memmove(pbuf, pbuf + devc->bufoffset, devc->buflen - devc->bufoffset); devc->buflen -= devc->bufoffset; return SR_OK;