From acb8379612b9659b11bcbfcbe906a7439163959c Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Thu, 18 Mar 2021 15:49:31 +0900 Subject: [PATCH] Add missing release code [Version] 0.0.3 [Issue Type] Bug fix Change-Id: I71a2d3a276a5285f176e8d76ba0294ac0c0ffbbc Signed-off-by: Jeongmo Yang --- packaging/hal-api-camera.spec | 2 +- src/hal-api-camera.c | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packaging/hal-api-camera.spec b/packaging/hal-api-camera.spec index 4fbe4e8..f0da78d 100644 --- a/packaging/hal-api-camera.spec +++ b/packaging/hal-api-camera.spec @@ -4,7 +4,7 @@ ### main package ######### Name: %{name} Summary: %{name} interface -Version: 0.0.2 +Version: 0.0.3 Release: 0 Group: Development/Libraries License: Apache-2.0 diff --git a/src/hal-api-camera.c b/src/hal-api-camera.c index 4a60148..2ae417e 100644 --- a/src/hal-api-camera.c +++ b/src/hal-api-camera.c @@ -68,23 +68,31 @@ int hal_camera_init(const char *hal_name, void **camera_handle) ret = hal_common_get_backend(HAL_MODULE_CAMERA, (void **)&new_handle->funcs); if (ret != TIZEN_ERROR_NONE) { SLOGE("Failed to get backend"); - g_free(new_handle); - return CAMERA_ERROR_INTERNAL; + goto __HAL_INIT_FAILED; } - HAL_CAMERA_DO_RETURN_IF_FAILED(new_handle->funcs, g_free(new_handle), CAMERA_ERROR_NOT_IMPLEMENTED); - HAL_CAMERA_DO_RETURN_IF_FAILED(new_handle->funcs->init, g_free(new_handle), CAMERA_ERROR_NOT_IMPLEMENTED); + if (!new_handle->funcs || !new_handle->funcs->init) { + SLOGE("invalid ptr[%p]", new_handle->funcs); + goto __HAL_INIT_FAILED; + } ret = new_handle->funcs->init(&new_handle->backend); if (ret != CAMERA_ERROR_NONE) { SLOGE("backend init failed[0x%x]", ret); - g_free(new_handle); - return CAMERA_ERROR_INTERNAL; + goto __HAL_INIT_FAILED; } *camera_handle = (void *)new_handle; return CAMERA_ERROR_NONE; + +__HAL_INIT_FAILED: + if (new_handle->funcs) + hal_common_put_backend(HAL_MODULE_CAMERA, (void *)new_handle->funcs); + + g_free(new_handle); + + return CAMERA_ERROR_INTERNAL; } -- 2.34.1