summaryrefslogtreecommitdiffstats
path: root/media/mtp
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@google.com>2011-12-01 18:36:06 -0500
committerMike Lockwood <lockwood@google.com>2011-12-01 18:37:29 -0500
commit44c190826d72589f5c9e13d69e32673bd8bd7c64 (patch)
tree327ad89c7a9e2e0f09a48680fb7e85a467635701 /media/mtp
parent17078d8a83becd5bfb49a39f1415882b78d07a49 (diff)
downloadframeworks_av-44c190826d72589f5c9e13d69e32673bd8bd7c64.zip
frameworks_av-44c190826d72589f5c9e13d69e32673bd8bd7c64.tar.gz
frameworks_av-44c190826d72589f5c9e13d69e32673bd8bd7c64.tar.bz2
MTP: Don't attempt to read more than 16K at a time from the MTP driver
This could happen sometimes if other operations increased the size of the data packet buffer to > 16K Change-Id: I4d316c7e2e558d3dd861d39accae6514fd9a62f5 Signed-off-by: Mike Lockwood <lockwood@google.com>
Diffstat (limited to 'media/mtp')
-rw-r--r--media/mtp/MtpDataPacket.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/media/mtp/MtpDataPacket.cpp b/media/mtp/MtpDataPacket.cpp
index 20225ba..cfea7e8 100644
--- a/media/mtp/MtpDataPacket.cpp
+++ b/media/mtp/MtpDataPacket.cpp
@@ -25,10 +25,12 @@
#include "MtpDataPacket.h"
#include "MtpStringBuffer.h"
+#define MTP_BUFFER_SIZE 16384
+
namespace android {
MtpDataPacket::MtpDataPacket()
- : MtpPacket(16384), // MAX_USBFS_BUFFER_SIZE
+ : MtpPacket(MTP_BUFFER_SIZE), // MAX_USBFS_BUFFER_SIZE
mOffset(MTP_CONTAINER_HEADER_SIZE)
{
}
@@ -345,7 +347,7 @@ void MtpDataPacket::putString(const uint16_t* string) {
#ifdef MTP_DEVICE
int MtpDataPacket::read(int fd) {
- int ret = ::read(fd, mBuffer, mBufferSize);
+ int ret = ::read(fd, mBuffer, MTP_BUFFER_SIZE);
if (ret < MTP_CONTAINER_HEADER_SIZE)
return -1;
mPacketSize = ret;