omx: prevent crash at MuxOMX::freeNode for already freed nodes
Bug: 29188904
Change-Id: I5c11ad371d6a060c4b201492aac08a8163d1b658
diff --git a/media/libstagefright/OMXClient.cpp b/media/libstagefright/OMXClient.cpp
index e994069..e40dbcf 100644
--- a/media/libstagefright/OMXClient.cpp
+++ b/media/libstagefright/OMXClient.cpp
@@ -303,6 +303,12 @@
status_t MuxOMX::freeNode(node_id node) {
Mutex::Autolock autoLock(mLock);
+ // exit if we have already freed the node
+ if (mNodeLocation.indexOfKey(node) < 0) {
+ ALOGD("MuxOMX::freeNode: node %d seems to be released already --- ignoring.", node);
+ return OK;
+ }
+
status_t err = getOMX_l(node)->freeNode(node);
if (err != OK) {