0004-segfault-on-removeFromWaitResource.patch 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. We always access globalComponentList[] at indexComponent=-1 which causes a
  2. segfault. Use i as the index instead.
  3. Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
  4. --- bellagio-0.9.3/src/omx_reference_resource_manager.c.old 2012-03-13 10:15:25.743940980 +0000
  5. +++ bellagio-0.9.3/src/omx_reference_resource_manager.c 2012-03-13 10:18:02.201971009 +0000
  6. @@ -485,7 +485,6 @@
  7. OMX_ERRORTYPE RM_removeFromWaitForResource(OMX_COMPONENTTYPE *openmaxStandComp) {
  8. omx_base_component_PrivateType* omx_base_component_Private;
  9. int i = 0;
  10. - int indexComponent = -1;
  11. DEBUG(DEB_LEV_FUNCTION_NAME, "In %s\n", __func__);
  12. omx_base_component_Private = (omx_base_component_PrivateType*)openmaxStandComp->pComponentPrivate;
  13. @@ -493,16 +492,13 @@
  14. while(listOfcomponentRegistered[i].component_name != NULL ) {
  15. if (!strcmp(listOfcomponentRegistered[i].component_name, omx_base_component_Private->name)) {
  16. // found component in the list of the resource manager
  17. - removeElemFromList(&globalComponentList[indexComponent], openmaxStandComp);
  18. - break;
  19. + removeElemFromList(&globalComponentList[i], openmaxStandComp);
  20. + DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
  21. + return OMX_ErrorNone;
  22. }
  23. i++;
  24. }
  25. - if (indexComponent <0) {
  26. - // No resource to be handled
  27. - DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
  28. - return OMX_ErrorNone;
  29. - }
  30. - DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
  31. + // No resource to be handled
  32. + DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
  33. return OMX_ErrorNone;
  34. }