From 90f5d75cf0502788fbc2fb49f366de40d5ffc164 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Mon, 14 Mar 2011 10:33:22 -0400 Subject: [PATCH] MtpDevice: Handle zero length packets in readResponse() Bug: 3509060 Change-Id: I291eefeaa667688c9e6e75da74ec3025b84065e9 Signed-off-by: Mike Lockwood --- media/mtp/MtpDevice.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/media/mtp/MtpDevice.cpp b/media/mtp/MtpDevice.cpp index 4ea8849707203..2e8615900cde7 100644 --- a/media/mtp/MtpDevice.cpp +++ b/media/mtp/MtpDevice.cpp @@ -819,6 +819,10 @@ MtpResponseCode MtpDevice::readResponse() { return mResponse.getResponseCode(); } int ret = mResponse.read(mRequestIn1); + // handle zero length packets, which might occur if the data transfer + // ends on a packet boundary + if (ret == 0) + ret = mResponse.read(mRequestIn1); if (ret >= MTP_CONTAINER_HEADER_SIZE) { mResponse.dump(); return mResponse.getResponseCode();