OSDN Git Service

ACodec: ignore OMX messages to already freed component
authorLajos Molnar <lajos@google.com>
Fri, 28 Mar 2014 21:37:51 +0000 (14:37 -0700)
committerLajos Molnar <lajos@google.com>
Fri, 28 Mar 2014 21:37:51 +0000 (14:37 -0700)
Bug: 12916984
Change-Id: I92848797b8d556cff468b9b0f0a618946083208f

media/libstagefright/ACodec.cpp

index 9164e5c..ac40568 100644 (file)
@@ -3103,6 +3103,14 @@ bool ACodec::BaseState::onOMXMessage(const sp<AMessage> &msg) {
     int32_t type;
     CHECK(msg->findInt32("type", &type));
 
+    // there is a possibility that this is an outstanding message for a
+    // codec that we have already destroyed
+    if (mCodec->mNode == NULL) {
+        ALOGI("ignoring message as already freed component: %s",
+                msg->debugString().c_str());
+        return true;
+    }
+
     IOMX::node_id nodeID;
     CHECK(msg->findPointer("node", &nodeID));
     CHECK_EQ(nodeID, mCodec->mNode);