Svace issue fix 90/124990/1
authorHaejeong Kim <backto.kim@samsung.com>
Thu, 13 Apr 2017 08:42:56 +0000 (17:42 +0900)
committerHaejeong Kim <backto.kim@samsung.com>
Thu, 13 Apr 2017 08:42:56 +0000 (17:42 +0900)
Change-Id: I8c1cd11a180f641adf703d0afe6cd83701aecb6c

packaging/media-server.spec
src/common/media-common-system.c
src/mediadb-update.c
src/scanner-v2/media-scanner-extract-v2.c
src/scanner-v2/media-scanner-scan-v2.c

index ff6d5f1..eb2d114 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       media-server
 Summary:    A server for media content management
-Version:    0.3.35
+Version:    0.3.36
 Release:    0
 Group:      Multimedia/Service
 License:    Apache-2.0
index 6a71078..1b7feb2 100755 (executable)
@@ -322,18 +322,21 @@ static int __ms_gdbus_method_sync(const char *dest, const char *path, const char
                } else {
                        result++;
                        data = malloc(sizeof(ms_block_info_s));
-
-                       data->block_type = val_int[0];
-                       data->mount_path = strdup(val_str[6]);
-                       data->state = val_int[2];
-                       data->mount_uuid = strdup(val_str[5]);
-                       data->flags = val_int[3];
-
-                       if (*dev_list == NULL) {
-                               MS_DBG_ERR("DEV LIST IS NULL");
-                               *dev_list = g_array_new(FALSE, FALSE, sizeof(ms_block_info_s*));
+                       if(data == NULL) {
+                               MS_DBG_ERR("Failed to allocate memory");
+                       } else {
+                               data->block_type = val_int[0];
+                               data->mount_path = strdup(val_str[6]);
+                               data->state = val_int[2];
+                               data->mount_uuid = strdup(val_str[5]);
+                               data->flags = val_int[3];
+
+                               if (*dev_list == NULL) {
+                                       MS_DBG_ERR("DEV LIST IS NULL");
+                                       *dev_list = g_array_new(FALSE, FALSE, sizeof(ms_block_info_s*));
+                               }
+                               g_array_append_val(*dev_list, data);
                        }
-                       g_array_append_val(*dev_list, data);
 
                        MS_DBG("(%d)th block device information", result);
                        MS_DBG("\tType(%d)", val_int[0]);
index e061c56..0bc730a 100755 (executable)
@@ -194,17 +194,20 @@ int __get_device_list(GArray **dev_list)
                        /* Do nothing */
                } else {
                        data = malloc(sizeof(block_info_s));
-
-                       data->block_type = val_int[0];
-                       data->mount_path = strdup(val_str[6]);
-                       data->state = val_int[2];
-                       data->mount_uuid = strdup(val_str[5]);
-                       data->flags = val_int[3];
-
-                       if (*dev_list == NULL) {
-                               *dev_list = g_array_new(FALSE, FALSE, sizeof(block_info_s*));
+                       if(data == NULL) {
+                               printf("Failed to allocate memory");
+                       } else {
+                               data->block_type = val_int[0];
+                               data->mount_path = strdup(val_str[6]);
+                               data->state = val_int[2];
+                               data->mount_uuid = strdup(val_str[5]);
+                               data->flags = val_int[3];
+
+                               if (*dev_list == NULL) {
+                                       *dev_list = g_array_new(FALSE, FALSE, sizeof(block_info_s*));
+                               }
+                               g_array_append_val(*dev_list, data);
                        }
-                       g_array_append_val(*dev_list, data);
                }
 
                for (i = 0; i < 7; i++) {
index 9bae92c..51c8aa9 100755 (executable)
@@ -371,7 +371,12 @@ gboolean msc_storage_extract_thread(void *data)
                }
 
                end_flag = extract_data->result ? LAST_EVENT : NORMAL_EVENT;
-               update_path = strndup(extract_data->msg, extract_data->msg_size);
+               update_path = g_strndup(extract_data->msg, extract_data->msg_size);
+               if(!MS_STRING_VALID(update_path)) {
+                       MS_DBG_ERR("Invalid update_path");
+                       ret = MS_MEDIA_ERR_INVALID_PARAMETER;
+                       goto NEXT;
+               }
                MS_DBG_WARN("extract storage_id is [%s], path [%s]", extract_data->storage_id, update_path);
 
                ms_set_storage_scan_status(handle, extract_data->storage_id, MEDIA_EXTRACT_PROCESSING, uid);
index 40b7421..491700c 100755 (executable)
@@ -1605,7 +1605,12 @@ gboolean msc_storage_scan_thread(void *data)
                        continue;
 
                storage_type = ms_get_storage_type_by_full(scan_data->msg, uid);
-               update_path = strndup(scan_data->msg, scan_data->msg_size);
+               update_path = g_strndup(scan_data->msg, scan_data->msg_size);
+               if(!MS_STRING_VALID(update_path)) {
+                       MS_DBG_ERR("Invalid update_path");
+                       ret = MS_MEDIA_ERR_INVALID_PARAMETER;
+                       goto NEXT;
+               }
 
                err = __msc_check_memory_status(uid);
                if (err != MS_MEDIA_ERR_NONE) {