From fd7a412c0aba080cadf421f0b68db0d4d5d8d7bd Mon Sep 17 00:00:00 2001 From: YoungHun Kim Date: Thu, 9 Jul 2020 14:43:02 +0900 Subject: [PATCH] fixup! Avoid the module access after destroy Change-Id: Iad3fbed148a296e6b2e52dd406cfb9e1227662b6 --- server/src/muse_server.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/src/muse_server.c b/server/src/muse_server.c index f04cd32..efb001f 100644 --- a/server/src/muse_server.c +++ b/server/src/muse_server.c @@ -33,6 +33,7 @@ void muse_server_set_dispatch_timeout(muse_module_h m, int api, int timeout) int muse_server_get_dispatch_timeout(muse_module_h m, int api) { muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); + muse_return_val_if_fail(m->pid > 0, 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); @@ -43,6 +44,7 @@ int muse_server_get_dispatch_timeout(muse_module_h m, int api) 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(m->pid > 0, 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); @@ -56,6 +58,7 @@ int muse_server_module_get_value(muse_module_h m, const char *name, int *value) gpointer ptr; muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); + muse_return_val_if_fail(m->pid > 0, 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); @@ -69,12 +72,14 @@ int muse_server_module_get_value(muse_module_h m, const char *name, int *value) int muse_server_module_get_msg_fd(muse_module_h m) { muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); + muse_return_val_if_fail(m->pid > 0, MM_ERROR_INVALID_ARGUMENT); return m->ch[MUSE_CHANNEL_MSG].sock_fd; } int muse_server_module_get_data_fd(muse_module_h m) { muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); + muse_return_val_if_fail(m->pid > 0, MM_ERROR_INVALID_ARGUMENT); return m->ch[MUSE_CHANNEL_DATA].sock_fd; } @@ -212,6 +217,7 @@ int muse_server_ipc_set_handle(muse_module_h m, intptr_t handle) int muse_server_ipc_get_fd(muse_module_h m, int *fd) { muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); + muse_return_val_if_fail(m->pid > 0, MM_ERROR_INVALID_ARGUMENT); muse_return_val_if_fail(fd, MM_ERROR_INVALID_ARGUMENT); *fd = m->ch[MUSE_CHANNEL_MSG].tbm_fd[0]; @@ -223,6 +229,7 @@ int muse_server_ipc_get_fds(muse_module_h m, int *fds, int *number) int i = 0; muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); + muse_return_val_if_fail(m->pid > 0, MM_ERROR_INVALID_ARGUMENT); muse_return_val_if_fail(fds, MM_ERROR_INVALID_ARGUMENT); muse_return_val_if_fail(number, MM_ERROR_INVALID_ARGUMENT); @@ -241,6 +248,7 @@ int muse_server_ipc_get_fds(muse_module_h m, int *fds, int *number) int muse_server_ipc_set_fd(muse_module_h m, int fd) { muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); + muse_return_val_if_fail(m->pid > 0, MM_ERROR_INVALID_ARGUMENT); if (!muse_core_fd_is_valid(fd)) { LOGE("invalid fd: %d", fd); -- 2.7.4