summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IMediaHTTPConnection.cpp
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2015-05-07 00:49:59 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-05-07 00:49:59 +0000
commit831352e926c2896996df285b343cc06f39053499 (patch)
treec204a60d9d2fd65633615565ceaaa4efab3323c6 /media/libmedia/IMediaHTTPConnection.cpp
parent5603d28707ef0f19b2b915756809424698e93d9c (diff)
parentd7446564c3e469aea1bba5460ff1fb9441f9fc09 (diff)
downloadframeworks_av-831352e926c2896996df285b343cc06f39053499.zip
frameworks_av-831352e926c2896996df285b343cc06f39053499.tar.gz
frameworks_av-831352e926c2896996df285b343cc06f39053499.tar.bz2
am d7446564: am 1e5670ab: am 296dc670: am d8e41553: am bd28ac74: am 59cea261: Add some sanity checks
* commit 'd7446564c3e469aea1bba5460ff1fb9441f9fc09': Add some sanity checks
Diffstat (limited to 'media/libmedia/IMediaHTTPConnection.cpp')
-rw-r--r--media/libmedia/IMediaHTTPConnection.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/media/libmedia/IMediaHTTPConnection.cpp b/media/libmedia/IMediaHTTPConnection.cpp
index 2ff7658..09137ef 100644
--- a/media/libmedia/IMediaHTTPConnection.cpp
+++ b/media/libmedia/IMediaHTTPConnection.cpp
@@ -24,6 +24,7 @@
#include <binder/Parcel.h>
#include <utils/String8.h>
#include <media/stagefright/foundation/ADebug.h>
+#include <media/stagefright/MediaErrors.h>
namespace android {
@@ -106,11 +107,18 @@ struct BpMediaHTTPConnection : public BpInterface<IMediaHTTPConnection> {
return UNKNOWN_ERROR;
}
- int32_t len = reply.readInt32();
+ size_t len = reply.readInt32();
- if (len > 0) {
- memcpy(buffer, mMemory->pointer(), len);
+ if (len > size) {
+ ALOGE("requested %zu, got %zu", size, len);
+ return ERROR_OUT_OF_RANGE;
}
+ if (len > mMemory->size()) {
+ ALOGE("got %zu, but memory has %zu", len, mMemory->size());
+ return ERROR_OUT_OF_RANGE;
+ }
+
+ memcpy(buffer, mMemory->pointer(), len);
return len;
}