From aa254c75e23e89333f23a3f97d6e4222eb2e3f9e Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Wed, 27 Sep 2017 16:10:46 +0900 Subject: [PATCH] Fix coverity issue - Nesting level does not match indentation - Logically dead code - Wrong sizeof argument - Unchecked return value from library [Version] 0.10.136 [Profile] Common [Issue Type] [Dependency module] N/A [Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-unified_20170926.2] Change-Id: I3ed8bc8c8e9d7c48db93fcb2cc8bf44d6bdabaf7 Signed-off-by: Jeongmo Yang --- packaging/libmm-camcorder.spec | 2 +- src/include/mm_camcorder_internal.h | 34 +++++++++++++++++++++++++--------- src/mm_camcorder_stillshot.c | 5 ++--- src/mm_camcorder_videorec.c | 13 ++++++++----- 4 files changed, 36 insertions(+), 18 deletions(-) diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 6f3ba51..d78fef2 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.135 +Version: 0.10.136 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_camcorder_internal.h b/src/include/mm_camcorder_internal.h index c8523fe..550af99 100644 --- a/src/include/mm_camcorder_internal.h +++ b/src/include/mm_camcorder_internal.h @@ -113,6 +113,7 @@ extern "C" { /* gstreamer element creation macro */ #define _MMCAMCORDER_PIPELINE_MAKE(sub_context, element, eid, name /*char* */, err) \ +do { \ if (element[eid].gst != NULL) { \ _mmcam_dbg_err("The element(Pipeline) is existed. element_id=[%d], name=[%s]", eid, name); \ gst_object_unref(element[eid].gst); \ @@ -125,9 +126,11 @@ extern "C" { goto pipeline_creation_error; \ } else { \ g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \ - } + } \ +} while (0) #define _MMCAMCORDER_BIN_MAKE(sub_context, element, eid, name /*char* */, err) \ +do { \ if (element[eid].gst != NULL) { \ _mmcam_dbg_err("The element(Bin) is existed. element_id=[%d], name=[%s]", eid, name); \ gst_object_unref(element[eid].gst); \ @@ -140,9 +143,11 @@ extern "C" { goto pipeline_creation_error; \ } else { \ g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \ - } + } \ +} while (0) #define _MMCAMCORDER_ELEMENT_MAKE(sub_context, element, eid, name /*char* */, nickname /*char* */, elist, err) \ +do { \ if (element[eid].gst != NULL) { \ _mmcam_dbg_err("The element is existed. element_id=[%d], name=[%s]", eid, name); \ gst_object_unref(element[eid].gst); \ @@ -160,9 +165,11 @@ extern "C" { g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \ err = MM_ERROR_NONE; \ } \ - elist = g_list_append(elist, &(element[eid])); + elist = g_list_append(elist, &(element[eid])); \ +} while (0) #define _MMCAMCORDER_ELEMENT_MAKE2(sub_context, element, eid, name /*char* */, nickname /*char* */, err) \ +do { \ if (element[eid].gst != NULL) { \ _mmcam_dbg_err("The element is existed. element_id=[%d], name=[%s]", eid, name); \ gst_object_unref(element[eid].gst); \ @@ -177,8 +184,10 @@ extern "C" { g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \ err = MM_ERROR_NONE; \ } \ +} while (0) #define _MMCAMCORDER_ELEMENT_MAKE_IGNORE_ERROR(sub_context, element, eid, name /*char* */, nickname /*char* */, elist) \ +do { \ if (element[eid].gst != NULL) { \ _mmcam_dbg_err("The element is existed. element_id=[%d], name=[%s]", eid, name); \ gst_object_unref(element[eid].gst); \ @@ -191,9 +200,11 @@ extern "C" { element[eid].id = eid; \ g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \ elist = g_list_append(elist, &(element[eid])); \ - } + } \ +} while (0) #define _MMCAMCORDER_ELEMENT_ADD(sub_context, element, eid, gst_element, elist, err) \ +do { \ if (element[eid].gst != NULL) { \ _mmcam_dbg_err("The element is existed. element_id=[%d]", eid); \ gst_object_unref(element[eid].gst); \ @@ -209,9 +220,11 @@ extern "C" { g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \ err = MM_ERROR_NONE; \ } \ - elist = g_list_append(elist, &(element[eid])); + elist = g_list_append(elist, &(element[eid])); \ +} while (0) #define _MMCAMCORDER_ENCODEBIN_ELMGET(sub_context, eid, name /*char* */, err) \ +do { \ if (sub_context->encode_element[eid].gst != NULL) { \ _mmcam_dbg_err("The element is existed. element_id=[%d], name=[%s]", eid, name); \ gst_object_unref(sub_context->encode_element[eid].gst); \ @@ -225,7 +238,8 @@ extern "C" { } else{ \ gst_object_unref(sub_context->encode_element[eid].gst); \ g_object_weak_ref(G_OBJECT(sub_context->encode_element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \ - } + } \ +} while (0) /* GStreamer element remove macro */ #define _MMCAMCORDER_ELEMENT_REMOVE(element, eid) \ @@ -240,7 +254,7 @@ extern "C" { #define _MM_GST_PAD_LINK gst_pad_link #define _MM_GST_PAD_LINK_UNREF(srcpad, sinkpad, err, if_fail_goto) \ -{ \ +do { \ GstPadLinkReturn ret = GST_PAD_LINK_OK; \ if (srcpad == NULL || sinkpad == NULL) { \ if (srcpad == NULL) { \ @@ -282,9 +296,10 @@ extern "C" { } \ gst_object_unref(srcpad); srcpad = NULL; \ gst_object_unref(sinkpad); sinkpad = NULL; \ -} +} while (0) #define _MM_GST_PAD_UNLINK_UNREF(srcpad, sinkpad) \ +do { \ if (srcpad && sinkpad) { \ gst_pad_unlink(srcpad, sinkpad); \ } else { \ @@ -295,7 +310,8 @@ extern "C" { } \ if (sinkpad) { \ gst_object_unref(sinkpad); sinkpad = NULL; \ - } + } \ +} while (0) #define _MMCAMCORDER_STATE_SET_COUNT 3 /* checking interval */ #define _MMCAMCORDER_STATE_CHECK_TOTALTIME 5000000L /* total wating time for state change */ diff --git a/src/mm_camcorder_stillshot.c b/src/mm_camcorder_stillshot.c index 414e6af..1b718bf 100644 --- a/src/mm_camcorder_stillshot.c +++ b/src/mm_camcorder_stillshot.c @@ -265,7 +265,7 @@ void _mmcamcorder_destroy_video_capture_pipeline(MMHandleType handle) /* set sink element pointer to attribute */ mm_attrs_get_index((MMHandleType)attrs, MMCAM_DISPLAY_REUSE_ELEMENT, &attr_index); attr_item = &attrs->items[attr_index]; - mmf_attribute_set_data(attr_item, (void *)sink_element, sizeof(sink_element)); + mmf_attribute_set_data(attr_item, (void *)sink_element, sizeof(*sink_element)); mmf_attribute_commit(attr_item); /* remove notify callback */ @@ -1769,8 +1769,7 @@ static ExifData *__mmcamcorder_update_exif_make(MMHandleType handle, ExifData *e if (ret != MM_ERROR_NONE) EXIF_SET_ERR(ret, EXIF_TAG_MAKE); } else { - ret = MM_ERROR_CAMCORDER_LOW_MEMORY; - EXIF_SET_ERR(ret, EXIF_TAG_MAKE); + _mmcam_dbg_err("strdup failed [%s]", MM_MAKER_NAME); } exit: diff --git a/src/mm_camcorder_videorec.c b/src/mm_camcorder_videorec.c index 6a0230e..7bdb7df 100644 --- a/src/mm_camcorder_videorec.c +++ b/src/mm_camcorder_videorec.c @@ -2029,7 +2029,7 @@ static gboolean __mmcamcorder_add_metadata_mp4(MMHandleType handle) /* add orientation info */ if (fseeko(f, internal_pos, SEEK_SET) < 0) { - _mmcam_dbg_err("fseek failed : errno %d", errno); + _mmcam_dbg_err("fseeko failed : errno %d", errno); goto fail; } @@ -2046,10 +2046,13 @@ static gboolean __mmcamcorder_add_metadata_mp4(MMHandleType handle) _mmcam_dbg_log("found [tkhd] tag"); /* seek to start position of composition matrix */ - fseek(f, _OFFSET_COMPOSITION_MATRIX, SEEK_CUR); - - /* update composition matrix for orientation */ - _mmcamcorder_update_composition_matrix(f, orientation); + if (fseek(f, _OFFSET_COMPOSITION_MATRIX, SEEK_CUR) == 0) { + /* update composition matrix for orientation */ + _mmcamcorder_update_composition_matrix(f, orientation); + } else { + _mmcam_dbg_err("fseek failed : errno %d", errno); + goto fail; + } } else { _mmcam_dbg_err("No 'moov' container"); goto fail; -- 2.7.4