Fix the issue of buffer overflow 86/235186/4
authorYoungHun Kim <yh8004.kim@samsung.com>
Tue, 2 Jun 2020 11:19:16 +0000 (20:19 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Wed, 3 Jun 2020 04:37:13 +0000 (13:37 +0900)
Change-Id: I4ddd17cebc7afa198740dbee9e7f2ba4ce9905fb

server/src/muse_server.c
server/src/muse_server_config.c

index eb82663..f04cd32 100644 (file)
 void muse_server_set_dispatch_timeout(muse_module_h m, int api, int timeout)
 {
        muse_return_if_fail(m);
+       muse_return_if_fail(m->idx >= 0 && m->idx < ms_get_instance()->conf->host_cnt);
+       muse_return_if_fail(api >= 0 && api < MUSE_DISPATCHER_MAX);
+
        ms_module_set_timeout(m->idx, api, timeout);
 }
 
 int muse_server_get_dispatch_timeout(muse_module_h m, int api)
 {
-       muse_return_val_if_fail(m, MUSE_ERR);
+       muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT);
+       muse_return_val_if_fail(m->idx >= 0 && m->idx < ms_get_instance()->conf->host_cnt, MM_ERROR_INVALID_ARGUMENT);
+       muse_return_val_if_fail(api >= 0 && api < MUSE_DISPATCHER_MAX, MM_ERROR_INVALID_ARGUMENT);
+
        return ms_module_get_timeout(m->idx, api);
 }
 
@@ -38,6 +44,8 @@ int muse_server_module_set_value(muse_module_h m, const char *name, int value)
 {
        muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT);
        muse_return_val_if_fail(name, MM_ERROR_INVALID_ARGUMENT);
+       muse_return_val_if_fail(m->idx >= 0 && m->idx < ms_get_instance()->conf->host_cnt, MM_ERROR_INVALID_ARGUMENT);
+
        ms_module_set_dllsym_value(m->idx, name, GINT_TO_POINTER(value));
        return MM_ERROR_NONE;
 }
@@ -50,6 +58,7 @@ int muse_server_module_get_value(muse_module_h m, const char *name, int *value)
        muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT);
        muse_return_val_if_fail(name, MM_ERROR_INVALID_ARGUMENT);
        muse_return_val_if_fail(value, MM_ERROR_INVALID_ARGUMENT);
+       muse_return_val_if_fail(m->idx >= 0 && m->idx < ms_get_instance()->conf->host_cnt, MM_ERROR_INVALID_ARGUMENT);
 
        ret = ms_module_get_dllsym_value(m->idx, name, &ptr);
        if (ret == MM_ERROR_NONE)
index f8def81..4e51b18 100644 (file)
@@ -181,6 +181,8 @@ static int _ms_config_parser(ms_config_t *conf)
                g_free(key);
        }
 
+       LOGI("host #%d", conf->host_cnt);
+
        free(hosts);
        return MM_ERROR_NONE;