coverity fix 83/209483/4 submit/tizen/20190710.055902
authorsanghyeok.oh <sanghyeok.oh@samsung.com>
Mon, 8 Jul 2019 08:06:53 +0000 (17:06 +0900)
committersanghyeok.oh <sanghyeok.oh@samsung.com>
Wed, 10 Jul 2019 02:10:41 +0000 (11:10 +0900)
Change-Id: I79e8640d6ccbd0b810451ba284d23c042ff89c67
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
src/block/block.c
src/storage/storage.c

index 193edb2..874ae3d 100644 (file)
@@ -394,70 +394,94 @@ static void create_file(int id, char *mount_point, bool extendedsd)
                _E("Failed to open '%s'.", file_name);
 }
 
-static void signal_device_blocked(struct block_device *bdev)
+static void broadcast_device_blocked(struct block_device *bdev)
 {
        struct block_data *data;
+       int ret;
 
        if (!bdev || !bdev->data)
                return;
 
        data = bdev->data;
 
-       dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_BLOCK_MANAGER,
+       ret = dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_BLOCK_MANAGER,
                        STORAGED_INTERFACE_BLOCK_MANAGER,
                        BLOCK_DEVICE_BLOCKED,
                        block_data_to_gvariant(data, 0));
+       if (ret < 0)
+               _E("Failed to send dbus signal");
 }
 
-static void signal_device_changed(struct block_device *bdev,
+static void broadcast_device_changed(struct block_device *bdev,
                enum block_dev_operation op)
 {
        struct block_data *data;
-       GVariant *var = NULL;
-       int flags;
+       GVariant *param = NULL;
+       const char *signal_name = NULL;
+       int flags = 0;
+       int ret;
 
-       if (!bdev || !bdev->data)
+       if (!bdev || !bdev->data) {
+               _E("Failed to broadcast device changed signal. op(%d)", op);
                return;
+       }
 
        data = bdev->data;
 
+       /* set flags and signal name */
        switch (op) {
        case BLOCK_DEV_MOUNT:
                BLOCK_GET_MOUNT_FLAGS(data, flags);
+               signal_name = BLOCK_DEVICE_CHANGED;
                break;
        case BLOCK_DEV_UNMOUNT:
                BLOCK_GET_UNMOUNT_FLAGS(data, flags);
+               signal_name = BLOCK_DEVICE_CHANGED;
                break;
        case BLOCK_DEV_FORMAT:
                BLOCK_GET_FORMAT_FLAGS(data, flags);
+               signal_name = BLOCK_DEVICE_CHANGED;
                break;
-       default:
+       case BLOCK_DEV_INSERT:
+               flags = 0;
+               signal_name = BLOCK_DEVICE_ADDED;
+               break;
+       case BLOCK_DEV_REMOVE:
                flags = 0;
+               signal_name = BLOCK_DEVICE_REMOVED;
                break;
+       default:
+               /* unknown op */
+               _E("Failed to broadcast device changed signal. op(%d)", op);
+               return;
        }
 
        /* Broadcast outside with BlockManager iface */
-       var = block_data_to_gvariant(data, flags);
+       param = block_data_to_gvariant(data, flags);
 
-       if (op == BLOCK_DEV_INSERT)
-               dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_BLOCK_MANAGER,
+       ret = dbus_handle_broadcast_dbus_signal_var(
+                               STORAGED_PATH_BLOCK_MANAGER,
                                STORAGED_INTERFACE_BLOCK_MANAGER,
-                               BLOCK_DEVICE_ADDED,
-                               var);
-       else if (op == BLOCK_DEV_REMOVE)
-               dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_BLOCK_MANAGER,
-                               STORAGED_INTERFACE_BLOCK_MANAGER,
-                               BLOCK_DEVICE_REMOVED,
-                               var);
-       else {
-               dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_BLOCK_MANAGER,
-                               STORAGED_INTERFACE_BLOCK_MANAGER,
-                               BLOCK_DEVICE_CHANGED,
-                               var);
-               dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_BLOCK_MANAGER,
-                               STORAGED_INTERFACE_BLOCK_MANAGER,
-                               BLOCK_DEVICE_CHANGED_2,
-                               block_data_to_gvariant2(data, flags));
+                               signal_name,
+                               param);
+       if (ret < 0)
+               _E("Failed to broadcast device changed signal. op(%d)", op);
+
+       /* broadcast one more signal for mount, unmount, format */
+       switch(op) {
+       case BLOCK_DEV_MOUNT:
+       case BLOCK_DEV_UNMOUNT:
+       case BLOCK_DEV_FORMAT:
+               ret = dbus_handle_broadcast_dbus_signal_var(
+                                       STORAGED_PATH_BLOCK_MANAGER,
+                                       STORAGED_INTERFACE_BLOCK_MANAGER,
+                                       BLOCK_DEVICE_CHANGED_2,
+                                       block_data_to_gvariant2(data, flags));
+               if (ret < 0)
+                       _E("Failed to broadcast device changed signal. op(%d)", op);
+       default:
+               /* do nothing */
+               break;
        }
 }
 
@@ -1028,7 +1052,7 @@ static bool pipe_cb(int fd, void *data)
 
        /* Broadcast outside with Block iface */
        if (pdata.bdev->on_private_op == REQ_NORMAL)
-               signal_device_changed(pdata.bdev, pdata.op);
+               broadcast_device_changed(pdata.bdev, pdata.op);
        else if (pdata.bdev->on_private_op == REQ_PRIVATE) {
                if (pdata.op == BLOCK_DEV_UNMOUNT) {
                        pdata.bdev->on_private_op = REQ_NORMAL;
@@ -1351,7 +1375,7 @@ static int block_unmount(struct block_device *bdev,
        data = bdev->data;
 
        if (bdev->on_private_op == REQ_NORMAL)
-               signal_device_blocked(bdev);
+               broadcast_device_blocked(bdev);
 
        /* it must called before unmounting mmc */
        r = mmc_check_and_unmount(data->mount_point);
index aac728a..4979bf5 100644 (file)
@@ -143,6 +143,7 @@ static void memcleanup_send_broadcast(struct storage_config_info *info, enum mem
        enum tzplatform_variable path;
        char *value;
        char buf[20];
+       int ret;
 
        if (info->mem_id == MEMORY_INTERNAL)
                path = TZ_SYS_USER;
@@ -177,9 +178,10 @@ static void memcleanup_send_broadcast(struct storage_config_info *info, enum mem
        _D("time=%s path=%d level=%s", buf, path, value);
 
 out:
-       dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_LOWMEM, STORAGED_INTERFACE_LOWMEM,
+       ret = dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_LOWMEM, STORAGED_INTERFACE_LOWMEM,
                        SIGNAL_NEED_CLEANUP, g_variant_new("(is)", path, value));
-
+       if (ret < 0)
+               _E("Failed to send dbus signal");
 }
 
 static void _popup_cb(GVariant *var, void *user_data, GError *err)