summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/OMXClient.cpp
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2016-08-02 07:07:05 -0700
committergitbuildkicker <android-build@google.com>2016-09-27 15:56:38 -0700
commitbc8a45f506a8be33250c523d71fab637a5fdaf81 (patch)
tree1d866da046cd517b5f0e7ce9b8b303b713810599 /media/libstagefright/OMXClient.cpp
parent4b459da1ee3bb52ddfcc649dc2686975a9d72ab7 (diff)
downloadframeworks_av-bc8a45f506a8be33250c523d71fab637a5fdaf81.zip
frameworks_av-bc8a45f506a8be33250c523d71fab637a5fdaf81.tar.gz
frameworks_av-bc8a45f506a8be33250c523d71fab637a5fdaf81.tar.bz2
IOMX: work against metadata buffer spoofing
- Prohibit direct set/getParam/Settings for extensions meant for OMXNodeInstance alone. This disallows enabling metadata mode without the knowledge of OMXNodeInstance. - Do not share metadata mode buffers cross process. - Disallow setting up metadata mode/tunneling/input surface after first sendCommand. - Disallow store-meta for input cross process. - Disallow emptyBuffer for surface input (via IOMX). - Fix checking for input surface. Bug: 29422020 Change-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e (cherry picked from commit f8a4cb410115045278f534e54b41ac78d6bf6c07)
Diffstat (limited to 'media/libstagefright/OMXClient.cpp')
-rw-r--r--media/libstagefright/OMXClient.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/media/libstagefright/OMXClient.cpp b/media/libstagefright/OMXClient.cpp
index e69890d..d252cb6 100644
--- a/media/libstagefright/OMXClient.cpp
+++ b/media/libstagefright/OMXClient.cpp
@@ -90,7 +90,7 @@ struct MuxOMX : public IOMX {
virtual status_t useBuffer(
node_id node, OMX_U32 port_index, const sp<IMemory> &params,
- buffer_id *buffer, OMX_U32 allottedSize);
+ buffer_id *buffer, OMX_U32 allottedSize, OMX_BOOL crossProcess);
virtual status_t useGraphicBuffer(
node_id node, OMX_U32 port_index,
@@ -120,7 +120,7 @@ struct MuxOMX : public IOMX {
virtual status_t allocateBufferWithBackup(
node_id node, OMX_U32 port_index, const sp<IMemory> &params,
- buffer_id *buffer, OMX_U32 allottedSize);
+ buffer_id *buffer, OMX_U32 allottedSize, OMX_BOOL crossProcess);
virtual status_t freeBuffer(
node_id node, OMX_U32 port_index, buffer_id buffer);
@@ -322,8 +322,9 @@ status_t MuxOMX::getGraphicBufferUsage(
status_t MuxOMX::useBuffer(
node_id node, OMX_U32 port_index, const sp<IMemory> &params,
- buffer_id *buffer, OMX_U32 allottedSize) {
- return getOMX(node)->useBuffer(node, port_index, params, buffer, allottedSize);
+ buffer_id *buffer, OMX_U32 allottedSize, OMX_BOOL /* crossProcess */) {
+ return getOMX(node)->useBuffer(
+ node, port_index, params, buffer, allottedSize, OMX_FALSE /* crossProcess */);
}
status_t MuxOMX::useGraphicBuffer(
@@ -375,9 +376,9 @@ status_t MuxOMX::allocateBuffer(
status_t MuxOMX::allocateBufferWithBackup(
node_id node, OMX_U32 port_index, const sp<IMemory> &params,
- buffer_id *buffer, OMX_U32 allottedSize) {
+ buffer_id *buffer, OMX_U32 allottedSize, OMX_BOOL /* crossProcess */) {
return getOMX(node)->allocateBufferWithBackup(
- node, port_index, params, buffer, allottedSize);
+ node, port_index, params, buffer, allottedSize, OMX_FALSE /* crossProcess */);
}
status_t MuxOMX::freeBuffer(