Fix coverity issue(memory leak, return value check, etc) 74/156174/2 accepted/tizen/unified/20171101.064718 submit/tizen/20171031.024842
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 17 Oct 2017 10:24:49 +0000 (19:24 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Tue, 17 Oct 2017 10:27:14 +0000 (19:27 +0900)
[Version] 0.3.7
[Profile] Common
[Issue Type] Bug fix
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-4.0-unified_20171013.1]

Change-Id: Idac2dd8ac51abea17349572e7acd28b3501aeb9c
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/capi-media-recorder.spec
src/recorder.c
test/recorder_test.c

index 88d7918..d2e2466 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-recorder
 Summary:    A Recorder API
-Version:    0.3.6
+Version:    0.3.7
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 614ebcc..d6c7936 100644 (file)
@@ -1029,6 +1029,11 @@ static void *_recorder_msg_recv_func(gpointer data)
 
                        LOGW("incompleted message [len %d]", remained_length);
 
+                       if (remained_msg) {
+                               free(remained_msg);
+                               remained_msg = NULL;
+                       }
+
                        remained_msg = (char *)malloc(remained_length + 1);
                        if (remained_msg) {
                                strncpy(remained_msg, recv_msg + prev_pos, remained_length);
index ce48d36..c3d0bab 100644 (file)
@@ -325,7 +325,7 @@ static void _recording_muxed_stream_cb(void *stream, int size, unsigned long lon
        g_print("\tRECORDING MUXED STREAM CB - %p, size %d, offset %llu\n", stream, size, offset);
 
        if (stream && size > 0) {
-               if (access(TARGET_FILENAME_MUXED_CB, F_OK))
+               if (offset == 0)
                        fp = fopen(TARGET_FILENAME_MUXED_CB, "w");
                else
                        fp = fopen(TARGET_FILENAME_MUXED_CB, "rb+");
@@ -335,9 +335,11 @@ static void _recording_muxed_stream_cb(void *stream, int size, unsigned long lon
                                g_print("\tback to %llu\n", offset);
                        }
 
-                       fseeko(fp, (off_t)offset, SEEK_SET);
+                       if (fseeko(fp, (off_t)offset, SEEK_SET) == 0)
+                               fwrite(stream, 1, size, fp);
+                       else
+                               g_print("\nSeek Error : offset %llu\n", offset);
 
-                       fwrite(stream, 1, size, fp);
                        fclose(fp);
                        fp = NULL;
                } else {