summaryrefslogtreecommitdiffstats
path: root/chromium/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc')
-rw-r--r--chromium/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/chromium/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc b/chromium/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
index 41ac37e0c8b..4edfc60f1e5 100644
--- a/chromium/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
+++ b/chromium/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
@@ -19,6 +19,7 @@ namespace device {
namespace {
const char kInvalidResponseMsg[] = "Invalid Response: ";
+uint32 kMaxChunkSize = 1024*1024; // D-Bus has message size limits.
// The MediaTransferProtocolDaemonClient implementation.
class MediaTransferProtocolDaemonClientImpl
@@ -140,6 +141,7 @@ class MediaTransferProtocolDaemonClientImpl
uint32 bytes_to_read,
const ReadFileCallback& callback,
const ErrorCallback& error_callback) OVERRIDE {
+ DCHECK_LE(bytes_to_read, kMaxChunkSize);
dbus::MethodCall method_call(mtpd::kMtpdInterface,
mtpd::kReadFileChunkByPath);
dbus::MessageWriter writer(&method_call);
@@ -162,6 +164,7 @@ class MediaTransferProtocolDaemonClientImpl
uint32 bytes_to_read,
const ReadFileCallback& callback,
const ErrorCallback& error_callback) OVERRIDE {
+ DCHECK_LE(bytes_to_read, kMaxChunkSize);
dbus::MethodCall method_call(mtpd::kMtpdInterface,
mtpd::kReadFileChunkById);
dbus::MessageWriter writer(&method_call);
@@ -349,7 +352,7 @@ class MediaTransferProtocolDaemonClientImpl
return;
}
- uint8* data_bytes = NULL;
+ const uint8* data_bytes = NULL;
size_t data_length = 0;
dbus::MessageReader reader(response);
if (!reader.PopArrayOfBytes(&data_bytes, &data_length)) {