comp-manager: Don't update device ip pointer
authorSaurav Babu <saurav.babu@samsung.com>
Thu, 12 Apr 2018 10:49:09 +0000 (16:19 +0530)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 2 Jul 2018 10:38:50 +0000 (19:38 +0900)
strtok updates the pointer which is passed so use a copy to pass to
strtok

Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
src/companion-manager/src/comp_util.c

index ae3bfa2..35c32a3 100644 (file)
@@ -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;
 }