Value checking to avoid invalid read detection of valgrind 94/250694/3 accepted/tizen/unified/20210105.125852 submit/tizen/20210104.040014
authorYoungHun Kim <yh8004.kim@samsung.com>
Sun, 3 Jan 2021 23:45:52 +0000 (08:45 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Mon, 4 Jan 2021 00:39:07 +0000 (09:39 +0900)
Change-Id: I07c973d42a5a704735fda261cea0909cd3dcce93

packaging/mm-resource-manager.spec
src/lib/mm_resource_manager_priv.c

index 25aea19..d908ea5 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mm-resource-manager
 Summary:    A Multimedia Resource Manager API
-Version:    0.2.42
+Version:    0.2.43
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 555b901..2b255c5 100644 (file)
@@ -346,6 +346,14 @@ int _mm_resource_manager_mark_for_release(mm_resource_manager_h rm, mm_resource_
        MM_RM_HASH64(handle_id);
 
        resource = (mm_resource_manager_res_p)resource_h;
+
+       MM_RM_RETVM_IF(resource->type < MM_RESOURCE_MANAGER_RES_TYPE_VIDEO_DECODER ||
+               resource->type >= MM_RESOURCE_MANAGER_RES_TYPE_MAX,
+               MM_RESOURCE_MANAGER_ERROR_INVALID_OPERATION, "Type [%d] is out of range", resource->type);
+       MM_RM_RETVM_IF(resource->state < MM_RESOURCE_MANAGER_RES_STATE_FOR_ACQUIRE ||
+               resource->state > MM_RESOURCE_MANAGER_RES_STATE_FOR_RELEASE,
+               MM_RESOURCE_MANAGER_ERROR_INVALID_OPERATION, "State [%d] is out of range", resource->state);
+
        res_name = _mm_resource_manager_get_res_str(resource->type);
 
        MM_RM_DEBUG("[invoked : %d state : %s] Resource %p is marked for release in resource #%"PRIu64,