summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjusung son <jusung07.son@samsung.com>2018-06-18 16:36:13 +0900
committerjusung son <jusung07.son@samsung.com>2018-06-18 16:36:13 +0900
commit1871fa16435826ac5fa407d659941ff0beb88c08 (patch)
tree37a149861001c96c4764f971887b68190f5cb709
parentff2d58f1d26b290657a66d3ac96a011261b6aeab (diff)
downloadmessage-port-1871fa16435826ac5fa407d659941ff0beb88c08.tar.gz
message-port-1871fa16435826ac5fa407d659941ff0beb88c08.tar.bz2
message-port-1871fa16435826ac5fa407d659941ff0beb88c08.zip
Fix wrong hash management
- A value managed by dbus was used as hash key. So the registered hash key is deleted by dbus Change-Id: If26359e031f6d1a7f783208446f8badb81633baf Signed-off-by: jusung son <jusung07.son@samsung.com>
-rwxr-xr-xsrc/message_port_remote.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/message_port_remote.c b/src/message_port_remote.c
index da0a6fe..e6aaeab 100755
--- a/src/message_port_remote.c
+++ b/src/message_port_remote.c
@@ -562,6 +562,7 @@ static bool __receive_message(GVariant *parameters, GDBusMethodInvocation *invoc
int *returned_fds = NULL;
int fd;
bool ret = false;
+ char *key_appid;
g_variant_get(parameters, "(&s&sbb&s&sbu&s)", &local_appid, &local_port, &local_trusted, &bi_dir,
&remote_appid, &remote_port, &remote_trusted, &len, &raw);
@@ -614,9 +615,11 @@ static bool __receive_message(GVariant *parameters, GDBusMethodInvocation *invoc
if (g_hash_table_lookup(__trusted_app_list_hash, (gpointer)local_appid) == NULL) {
if (!is_preloaded(local_appid, remote_appid)) {
int ret = check_certificate(local_appid, remote_appid);
- if (ret == MESSAGE_PORT_ERROR_NONE)
- g_hash_table_insert(__trusted_app_list_hash, local_appid, "TRUE");
- else {
+ if (ret == MESSAGE_PORT_ERROR_NONE) {
+ key_appid = strdup(local_appid);
+ if (key_appid)
+ g_hash_table_insert(__trusted_app_list_hash, key_appid, "TRUE");
+ } else {
_LOGE("The application (%s) is not signed with the same certificate",
local_appid);
goto out;