From 455b25bc97a730b23163181c292b33d5d076e6b6 Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Tue, 30 Aug 2022 21:38:59 +0900 Subject: [PATCH] Fix crash caused by not-allocated memory access - Minor change : Change log level in __send_message_get_return(). [Version] 0.4.89 [Issue Type] Bug fix Change-Id: I8cb636009ce6a7a526e9193ba7ca5f36d7bb6704 Signed-off-by: Jeongmo Yang --- packaging/capi-media-camera.spec | 2 +- src/camera.c | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packaging/capi-media-camera.spec b/packaging/capi-media-camera.spec index 51a37de..20221ad 100644 --- a/packaging/capi-media-camera.spec +++ b/packaging/capi-media-camera.spec @@ -1,6 +1,6 @@ Name: capi-media-camera Summary: A Camera API -Version: 0.4.88 +Version: 0.4.89 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/camera.c b/src/camera.c index f53286b..9cbca68 100644 --- a/src/camera.c +++ b/src/camera.c @@ -772,7 +772,10 @@ static void __send_message_get_return(camera_cb_info_s *cb_info, muse_camera_api return; } - CAM_LOG_INFO("api[%d], message[%s]", api, msg); + if (api != MUSE_CAMERA_API_RETURN_BUFFER && api != MUSE_CAMERA_API_PREVIEW_CB_RETURN) + CAM_LOG_INFO("api[%d], message[%s]", api, msg); + else + CAM_LOG_DEBUG("api[%d], message[%s]", api, msg); if (cb_info->is_server_connected) { _camera_update_api_waiting(cb_info, api, 1); @@ -795,7 +798,10 @@ static void __send_message_get_return(camera_cb_info_s *cb_info, muse_camera_api muse_core_msg_free(msg); - CAM_LOG_INFO("api[%d] ret[0x%x]", api, ret ? *ret : 0x0); + if (api != MUSE_CAMERA_API_RETURN_BUFFER && api != MUSE_CAMERA_API_PREVIEW_CB_RETURN) + CAM_LOG_INFO("api[%d] ret[0x%x]", api, ret ? *ret : 0x0); + else + CAM_LOG_DEBUG("api[%d] ret[0x%x]", api, ret ? *ret : 0x0); } @@ -6483,7 +6489,7 @@ int camera_device_manager_initialize(camera_device_manager_h *manager) unsigned int i = 0; int ret = CAMERA_ERROR_NONE; void *dl_handle = NULL; - camera_device_manager *new_manager = NULL; + g_autofree camera_device_manager *new_manager = g_new0(camera_device_manager, 1); cdm_symbol_table sym_table[] = { {(void **)&new_manager->initialize, "cdm_initialize"}, {(void **)&new_manager->deinitialize, "cdm_deinitialize"}, @@ -6494,8 +6500,6 @@ int camera_device_manager_initialize(camera_device_manager_h *manager) CAMERA_CHECK_DEVICE_MANAGER; - new_manager = g_new0(camera_device_manager, 1); - if (!manager) { CAM_LOG_ERROR("NULL manager"); ret = CAMERA_ERROR_INVALID_PARAMETER; @@ -6526,17 +6530,17 @@ int camera_device_manager_initialize(camera_device_manager_h *manager) } new_manager->dl_handle = dl_handle; - *manager = (camera_device_manager_h)new_manager; + *manager = (camera_device_manager_h)g_steal_pointer(&new_manager); CAM_LOG_INFO("camera device manager[%p](dl handle[%p]) initialized", - new_manager, dl_handle); + *manager, dl_handle); return CAMERA_ERROR_NONE; _INITIALIZE_FAILED: if (dl_handle) dlclose(dl_handle); - g_free(new_manager); + return ret; } -- 2.7.4