+ if (buff == NULL) {
+ len = LE32(res->TransferSize);
+ buff=malloc(len);
+ if (buff == NULL) {
+ perror("malloc");
+ exit(EXIT_FAILURE);
+ }
+ }
+ }
+
+ if ((sc->usb.brokenRigol == 0) || (transfer_size == USBTMC_IN_TRANSFERSIZE) ||
+ ((r - sizeof(struct usbtmc_header) >= len))) {
+ memcpy(buff + bytes_read, rxbuff + headerlen, r - headerlen);
+ bytes_read += r - headerlen;
+ }
+
+ transfer_size = USBTMC_IN_TRANSFERSIZE;
+ } while(bytes_read < len);
+
+ free(req);