Fix coverity issue 18/152818/2 accepted/tizen/unified/20171010.063616 submit/tizen/20170928.044334
authorJeongmo Yang <jm80.yang@samsung.com>
Wed, 27 Sep 2017 07:10:46 +0000 (16:10 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Wed, 27 Sep 2017 07:19:45 +0000 (16:19 +0900)
- 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 <jm80.yang@samsung.com>
packaging/libmm-camcorder.spec
src/include/mm_camcorder_internal.h
src/mm_camcorder_stillshot.c
src/mm_camcorder_videorec.c

index 6f3ba51..d78fef2 100644 (file)
@@ -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
index c8523fe..550af99 100644 (file)
@@ -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 */
index 414e6af..1b718bf 100644 (file)
@@ -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:
index 6a0230e..7bdb7df 100644 (file)
@@ -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;