From: Saurav Babu Date: Thu, 12 Apr 2018 10:49:09 +0000 (+0530) Subject: comp-manager: Don't update device ip pointer X-Git-Tag: submit/tizen/20190131.065036~45 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=64e3bd7527529ce1ba66b3e622392d2ddc6ffaf5;p=platform%2Fcore%2Fapi%2Fmulti-device-group.git comp-manager: Don't update device ip pointer strtok updates the pointer which is passed so use a copy to pass to strtok Signed-off-by: Saurav Babu --- diff --git a/src/companion-manager/src/comp_util.c b/src/companion-manager/src/comp_util.c index ae3bfa2..35c32a3 100644 --- a/src/companion-manager/src/comp_util.c +++ b/src/companion-manager/src/comp_util.c @@ -290,29 +290,39 @@ int comp_is_local_ip(char *ipdata) char *ip = NULL; char *ifname = NULL; char *save_str = NULL; + char *addr = NULL; GList *iter = NULL; ipv6_info_s *ipv6info = NULL; ipv4_info_s *ipv4info = NULL; - ip = strtok_r(ipdata, "%", &save_str); + addr = g_strdup(ipdata); + + ip = strtok_r(addr, "%", &save_str); ifname = strtok_r(NULL, "%", &save_str); iter = g_list_first(g_ip_info.ipv6_list); while (NULL != iter) { ipv6info = iter->data; - if (ipv6info && ipv6info->ip && !strncmp(ipv6info->ip, ip, INET6_ADDRSTRLEN)) + if (ipv6info && ipv6info->ip && !strncmp(ipv6info->ip, ip, + INET6_ADDRSTRLEN)) { + g_free(addr); return LOCAL_IP; + } iter = g_list_next(iter); } iter = g_list_first(g_ip_info.ipv4_list); while (NULL != iter) { ipv4info = iter->data; - if (ipv4info && ipv4info->ip && !strncmp(ipv4info->ip, ip, INET_ADDRSTRLEN)) + if (ipv4info && ipv4info->ip && !strncmp(ipv4info->ip, ip, + INET_ADDRSTRLEN)) { + g_free(addr); return LOCAL_IP; + } iter = g_list_next(iter); } + g_free(addr); return REMOTE_IP; }