Merge "adb: split up reads longer than 16k." am: 56d7d4e85f
am: bf2c482b56
* commit 'bf2c482b5625d7f0722e85415221a02795cb72ca':
adb: split up reads longer than 16k.
diff --git a/adb/usb_linux_client.cpp b/adb/usb_linux_client.cpp
index ceed8fa..151c0aa 100644
--- a/adb/usb_linux_client.cpp
+++ b/adb/usb_linux_client.cpp
@@ -481,7 +481,8 @@
char* buf = static_cast<char*>(data);
while (len > 0) {
- int n = adb_read(h->bulk_out, buf, len);
+ int read_len = (len > 16384) ? 16384 : len;
+ int n = adb_read(h->bulk_out, buf, read_len);
if (n < 0) {
D("ERROR: fd = %d, n = %d: %s", h->bulk_out, n, strerror(errno));
return -1;