Merge "More OMX struct checking" into mnc-dev am: 4040b13b07 am: 05202f5
am: ff5d1bb
* commit 'ff5d1bb0ea9e377cae80c9255758b037692ab25d':
More OMX struct checking
Change-Id: Ic831540ff9a78c16e65c07dda7c6095c5171f194
diff --git a/media/libstagefright/omx/SoftVideoEncoderOMXComponent.cpp b/media/libstagefright/omx/SoftVideoEncoderOMXComponent.cpp
index 8ea7a6e..5239bc8 100644
--- a/media/libstagefright/omx/SoftVideoEncoderOMXComponent.cpp
+++ b/media/libstagefright/omx/SoftVideoEncoderOMXComponent.cpp
@@ -172,6 +172,11 @@
OMX_ERRORTYPE SoftVideoEncoderOMXComponent::internalSetPortParams(
const OMX_PARAM_PORTDEFINITIONTYPE *port) {
+
+ if (!isValidOMXParam(port)) {
+ return OMX_ErrorBadParameter;
+ }
+
if (port->nPortIndex == kInputPortIndex) {
mWidth = port->format.video.nFrameWidth;
mHeight = port->format.video.nFrameHeight;
@@ -218,6 +223,10 @@
const OMX_PARAM_COMPONENTROLETYPE *roleParams =
(const OMX_PARAM_COMPONENTROLETYPE *)param;
+ if (!isValidOMXParam(roleParams)) {
+ return OMX_ErrorBadParameter;
+ }
+
if (strncmp((const char *)roleParams->cRole,
mComponentRole,
OMX_MAX_STRINGNAME_SIZE - 1)) {
@@ -243,6 +252,10 @@
const OMX_VIDEO_PARAM_PORTFORMATTYPE* format =
(const OMX_VIDEO_PARAM_PORTFORMATTYPE *)param;
+ if (!isValidOMXParam(format)) {
+ return OMX_ErrorBadParameter;
+ }
+
if (format->nPortIndex == kInputPortIndex) {
if (format->eColorFormat == OMX_COLOR_FormatYUV420Planar ||
format->eColorFormat == OMX_COLOR_FormatYUV420SemiPlanar ||
@@ -272,6 +285,10 @@
const StoreMetaDataInBuffersParams *storeParam =
(const StoreMetaDataInBuffersParams *)param;
+ if (!isValidOMXParam(storeParam)) {
+ return OMX_ErrorBadParameter;
+ }
+
if (storeParam->nPortIndex == kOutputPortIndex) {
return storeParam->bStoreMetaData ? OMX_ErrorUnsupportedSetting : OMX_ErrorNone;
} else if (storeParam->nPortIndex != kInputPortIndex) {
@@ -306,6 +323,10 @@
OMX_VIDEO_PARAM_PORTFORMATTYPE *formatParams =
(OMX_VIDEO_PARAM_PORTFORMATTYPE *)param;
+ if (!isValidOMXParam(formatParams)) {
+ return OMX_ErrorBadParameter;
+ }
+
if (formatParams->nPortIndex == kInputPortIndex) {
if (formatParams->nIndex >= NELEM(kSupportedColorFormats)) {
return OMX_ErrorNoMore;
@@ -331,6 +352,10 @@
OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevel =
(OMX_VIDEO_PARAM_PROFILELEVELTYPE *) param;
+ if (!isValidOMXParam(profileLevel)) {
+ return OMX_ErrorBadParameter;
+ }
+
if (profileLevel->nPortIndex != kOutputPortIndex) {
ALOGE("Invalid port index: %u", profileLevel->nPortIndex);
return OMX_ErrorUnsupportedIndex;