@@ -447,7 +447,7 @@ class BpOMX : public BpInterface<IOMX> {
447447 remote ()->transact (CONFIGURE_VIDEO_TUNNEL_MODE, data, &reply);
448448
449449 status_t err = reply.readInt32 ();
450- if (sidebandHandle) {
450+ if (err == OK && sidebandHandle) {
451451 *sidebandHandle = (native_handle_t *)reply.readNativeHandle ();
452452 }
453453 return err;
@@ -694,34 +694,39 @@ status_t BnOMX::onTransact(
694694
695695 size_t size = data.readInt64 ();
696696
697- void *params = malloc (size);
698- data.read (params, size);
699-
700- status_t err;
701- switch (code) {
702- case GET_PARAMETER:
703- err = getParameter (node, index, params, size);
704- break ;
705- case SET_PARAMETER:
706- err = setParameter (node, index, params, size);
707- break ;
708- case GET_CONFIG:
709- err = getConfig (node, index, params, size);
710- break ;
711- case SET_CONFIG:
712- err = setConfig (node, index, params, size);
713- break ;
714- case SET_INTERNAL_OPTION:
715- {
716- InternalOptionType type =
717- (InternalOptionType)data.readInt32 ();
718-
719- err = setInternalOption (node, index, type, params, size);
720- break ;
697+ status_t err = NO_MEMORY;
698+ void *params = calloc (size, 1 );
699+ if (params) {
700+ err = data.read (params, size);
701+ if (err != OK) {
702+ android_errorWriteLog (0x534e4554 , " 26914474" );
703+ } else {
704+ switch (code) {
705+ case GET_PARAMETER:
706+ err = getParameter (node, index, params, size);
707+ break ;
708+ case SET_PARAMETER:
709+ err = setParameter (node, index, params, size);
710+ break ;
711+ case GET_CONFIG:
712+ err = getConfig (node, index, params, size);
713+ break ;
714+ case SET_CONFIG:
715+ err = setConfig (node, index, params, size);
716+ break ;
717+ case SET_INTERNAL_OPTION:
718+ {
719+ InternalOptionType type =
720+ (InternalOptionType)data.readInt32 ();
721+
722+ err = setInternalOption (node, index, type, params, size);
723+ break ;
724+ }
725+
726+ default :
727+ TRESPASS ();
728+ }
721729 }
722-
723- default :
724- TRESPASS ();
725730 }
726731
727732 reply->writeInt32 (err);
@@ -846,9 +851,13 @@ status_t BnOMX::onTransact(
846851 OMX_U32 port_index = data.readInt32 ();
847852
848853 sp<IGraphicBufferProducer> bufferProducer;
849- MetadataBufferType type;
854+ MetadataBufferType type = kMetadataBufferTypeInvalid ;
850855 status_t err = createInputSurface (node, port_index, &bufferProducer, &type);
851856
857+ if ((err != OK) && (type == kMetadataBufferTypeInvalid )) {
858+ android_errorWriteLog (0x534e4554 , " 26324358" );
859+ }
860+
852861 reply->writeInt32 (type);
853862 reply->writeInt32 (err);
854863
@@ -888,9 +897,13 @@ status_t BnOMX::onTransact(
888897 sp<IGraphicBufferConsumer> bufferConsumer =
889898 interface_cast<IGraphicBufferConsumer>(data.readStrongBinder ());
890899
891- MetadataBufferType type;
900+ MetadataBufferType type = kMetadataBufferTypeInvalid ;
892901 status_t err = setInputSurface (node, port_index, bufferConsumer, &type);
893902
903+ if ((err != OK) && (type == kMetadataBufferTypeInvalid )) {
904+ android_errorWriteLog (0x534e4554 , " 26324358" );
905+ }
906+
894907 reply->writeInt32 (type);
895908 reply->writeInt32 (err);
896909 return NO_ERROR;
@@ -916,8 +929,9 @@ status_t BnOMX::onTransact(
916929 OMX_U32 port_index = data.readInt32 ();
917930 OMX_BOOL enable = (OMX_BOOL)data.readInt32 ();
918931
919- MetadataBufferType type;
932+ MetadataBufferType type = kMetadataBufferTypeInvalid ;
920933 status_t err = storeMetaDataInBuffers (node, port_index, enable, &type);
934+
921935 reply->writeInt32 (type);
922936 reply->writeInt32 (err);
923937
@@ -950,11 +964,13 @@ status_t BnOMX::onTransact(
950964 OMX_BOOL tunneled = (OMX_BOOL)data.readInt32 ();
951965 OMX_U32 audio_hw_sync = data.readInt32 ();
952966
953- native_handle_t *sideband_handle;
967+ native_handle_t *sideband_handle = NULL ;
954968 status_t err = configureVideoTunnelMode (
955969 node, port_index, tunneled, audio_hw_sync, &sideband_handle);
956970 reply->writeInt32 (err);
957- reply->writeNativeHandle (sideband_handle);
971+ if (err == OK){
972+ reply->writeNativeHandle (sideband_handle);
973+ }
958974
959975 return NO_ERROR;
960976 }
0 commit comments