|
@@ -0,0 +1,37 @@
|
|
|
+We always access globalComponentList[] at indexComponent=-1 which causes a
|
|
|
+segfault. Use i as the index instead.
|
|
|
+
|
|
|
+Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
|
|
|
+
|
|
|
+--- bellagio-0.9.3/src/omx_reference_resource_manager.c.old 2012-03-13 10:15:25.743940980 +0000
|
|
|
++++ bellagio-0.9.3/src/omx_reference_resource_manager.c 2012-03-13 10:18:02.201971009 +0000
|
|
|
+@@ -485,7 +485,6 @@
|
|
|
+ OMX_ERRORTYPE RM_removeFromWaitForResource(OMX_COMPONENTTYPE *openmaxStandComp) {
|
|
|
+ omx_base_component_PrivateType* omx_base_component_Private;
|
|
|
+ int i = 0;
|
|
|
+- int indexComponent = -1;
|
|
|
+
|
|
|
+ DEBUG(DEB_LEV_FUNCTION_NAME, "In %s\n", __func__);
|
|
|
+ omx_base_component_Private = (omx_base_component_PrivateType*)openmaxStandComp->pComponentPrivate;
|
|
|
+@@ -493,16 +492,13 @@
|
|
|
+ while(listOfcomponentRegistered[i].component_name != NULL ) {
|
|
|
+ if (!strcmp(listOfcomponentRegistered[i].component_name, omx_base_component_Private->name)) {
|
|
|
+ // found component in the list of the resource manager
|
|
|
+- removeElemFromList(&globalComponentList[indexComponent], openmaxStandComp);
|
|
|
+- break;
|
|
|
++ removeElemFromList(&globalComponentList[i], openmaxStandComp);
|
|
|
++ DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
|
|
|
++ return OMX_ErrorNone;
|
|
|
+ }
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+- if (indexComponent <0) {
|
|
|
+- // No resource to be handled
|
|
|
+- DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
|
|
|
+- return OMX_ErrorNone;
|
|
|
+- }
|
|
|
+- DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
|
|
|
++ // No resource to be handled
|
|
|
++ DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
|
|
|
+ return OMX_ErrorNone;
|
|
|
+ }
|