Fix Coverity defects 01/154401/2 accepted/tizen/unified/20171013.193027 submit/tizen/20171012.130939
authorSeungbae Shin <seungbae.shin@samsung.com>
Tue, 10 Oct 2017 07:07:36 +0000 (16:07 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Wed, 11 Oct 2017 09:51:01 +0000 (18:51 +0900)
[Version] 0.2.15
[Issue Type] Security

Change-Id: I8339fc77cf2978f9a800a61423da0865d8e2f64a

mm_session.c
packaging/libmm-session.spec

index b7e8a49..1358df0 100644 (file)
@@ -266,6 +266,7 @@ int _mm_session_util_read_type(int app_pid, int *sessiontype)
        pid_t mypid;
        int fd = -1;
        char filename[MAX_FILE_LENGTH];
+       int result = MM_ERROR_NONE;
 
        debug_fenter();
 
@@ -283,15 +284,20 @@ int _mm_session_util_read_type(int app_pid, int *sessiontype)
        if (fd < 0)
                return MM_ERROR_INVALID_HANDLE;
 
-       read(fd, sessiontype, sizeof(int));
-       *sessiontype = *sessiontype >> 16;
-       debug_warning("read sessiontype(%d) from /tmp/mm_session_%d", *sessiontype, mypid);
+       if (read(fd, sessiontype, sizeof(int)) == sizeof(int)) {
+               *sessiontype = *sessiontype >> 16;
+               debug_warning("read sessiontype(%d) from /tmp/mm_session_%d", *sessiontype, mypid);
+       } else {
+               debug_error("failed to read from %s, errno %d", filename, errno);
+               result = MM_ERROR_INVALID_HANDLE;
+       }
+
        close(fd);
        ////// READ SESSION TYPE /////////
 
        debug_fleave();
 
-       return MM_ERROR_NONE;
+       return result;
 }
 
 EXPORT_API
@@ -341,6 +347,7 @@ int _mm_session_util_read_information(int app_pid, int *session_type, int *flags
        int fd = -1;
        char filename[MAX_FILE_LENGTH];
        int result_info = 0;
+       int result = MM_ERROR_NONE;
 
        debug_fenter();
 
@@ -357,17 +364,21 @@ int _mm_session_util_read_information(int app_pid, int *session_type, int *flags
        fd = open(filename, O_RDONLY);
        if (fd < 0)
                return MM_ERROR_INVALID_HANDLE;
-       read(fd, &result_info, sizeof(int));
-       *session_type = result_info >> 16;
-       *flags = result_info & 0x0000ffff;
+       if (read(fd, &result_info, sizeof(int)) == sizeof(int)) {
+               *session_type = result_info >> 16;
+               *flags = result_info & 0x0000ffff;
+               debug_warning("read session_type(%d), session_option(%x) from /tmp/mm_session_%d", *session_type, *flags, mypid);
+       } else {
+               debug_error("failed to read from %s, errno %d", filename, errno);
+               result = MM_ERROR_INVALID_HANDLE;
+       }
 
-       debug_warning("read session_type(%d), session_option(%x) from /tmp/mm_session_%d", *session_type, *flags, mypid);
        close(fd);
        ////// READ SESSION INFO /////////
 
        debug_fleave();
 
-       return MM_ERROR_NONE;
+       return result;
 }
 
 void __session_signal_handler(int signo, siginfo_t *siginfo, void *context)
index aa9113a..d862329 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-session
 Summary:    Multimedia Session Library
-Version:    0.2.14
+Version:    0.2.15
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0