From: Jeongmo Yang Date: Wed, 11 Oct 2017 06:07:22 +0000 (+0900) Subject: Fix coverity issue X-Git-Tag: accepted/tizen/unified/20171012.075037^0 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git;a=commitdiff_plain;h=bd92dffba59b6f6f71eaf7c9b0b9bc950ad58d2f Fix coverity issue 1. Unchecked return value : mm_camcorder_videorec.c at line 1330 2. Logically dead code : mm_camcorder_internal.c at line 3918 3. Explicit null dereferenced : mm_camcorder_gstcommon.c at line 373, 1368 4. Explicit null dereferenced : mm_camcorder_videorec.c at line 264 [Version] 0.10.137 [Profile] Common [Issue Type] Coverity [Dependency module] N/A Change-Id: I60920b5b587fdf99c25e5e05aa672ac0f1e337b5 Signed-off-by: Jeongmo Yang --- diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index d78fef2..3d981be 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 0.10.136 +Version: 0.10.137 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_camcorder_gstcommon.c b/src/mm_camcorder_gstcommon.c index 8a84d36..9d3b27c 100644 --- a/src/mm_camcorder_gstcommon.c +++ b/src/mm_camcorder_gstcommon.c @@ -350,6 +350,11 @@ int _mmcamcorder_create_preview_elements(MMHandleType handle) /* Get videosink name */ _mmcamcorder_conf_get_value_element_name(sc->VideosinkElement, &videosink_name); + if (!videosink_name) { + _mmcam_dbg_err("failed to get videosink name"); + goto pipeline_creation_error; + } + _MMCAMCORDER_ELEMENT_MAKE(sc, sc->element, _MMCAMCORDER_VIDEOSINK_QUE, "queue", "videosink_queue", element_list, err); _mmcam_dbg_log("videosink_name: %s", videosink_name); @@ -1362,6 +1367,11 @@ int _mmcamcorder_videosink_window_set(MMHandleType handle, type_element* Videosi _mmcamcorder_conf_get_value_element_name(VideosinkElement, &videosink_name); + if (!videosink_name) { + _mmcam_dbg_err("failed to get videosink name"); + return MM_ERROR_CAMCORDER_INTERNAL; + } + _mmcam_dbg_log("(overlay=%p, size=%d)", overlay, size); /* Set display handle */ diff --git a/src/mm_camcorder_internal.c b/src/mm_camcorder_internal.c index 99eae25..a7e5151 100644 --- a/src/mm_camcorder_internal.c +++ b/src/mm_camcorder_internal.c @@ -3915,7 +3915,6 @@ void __mmcamcorder_force_stop(mmf_camcorder_t *hcamcorder, int state_change_by_s break; } - case MM_CAMCORDER_STATE_NULL: default: _mmcam_dbg_warn("Already stopped."); break; diff --git a/src/mm_camcorder_videorec.c b/src/mm_camcorder_videorec.c index 7bdb7df..4e7b7fb 100644 --- a/src/mm_camcorder_videorec.c +++ b/src/mm_camcorder_videorec.c @@ -217,6 +217,12 @@ int _mmcamcorder_create_recorder_pipeline(MMHandleType handle) &RecordsinkElement); _mmcamcorder_conf_get_value_element_name(RecordsinkElement, &gst_element_rsink_name); + if (!gst_element_rsink_name) { + _mmcam_dbg_err("failed to get recordsink name"); + err = MM_ERROR_CAMCORDER_INTERNAL; + goto pipeline_creation_error; + } + /* set data probe function */ /* register message cb */ @@ -1321,7 +1327,13 @@ int _mmcamcorder_video_handle_eos(MMHandleType handle) info->restart_preview = FALSE; /* recover preview size */ - _mmcamcorder_set_camera_resolution(handle, info->preview_width, info->preview_height); + if (!_mmcamcorder_set_camera_resolution(handle, info->preview_width, info->preview_height)) { + msg.id = MM_MESSAGE_CAMCORDER_ERROR; + msg.param.code = MM_ERROR_CAMCORDER_INTERNAL; + _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg); + _mmcam_dbg_err("Failed to set camera resolution %dx%d", + info->preview_width, info->preview_height); + } ret = _mmcamcorder_gst_set_state(handle, sc->element[_MMCAMCORDER_MAIN_PIPE].gst, GST_STATE_PLAYING); /* Do not return when error is occurred.