summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaehyun Kim <jeik01.kim@samsung.com>2017-09-19 19:59:52 +0900
committerJaehyun Kim <jeik01.kim@samsung.com>2017-09-19 20:03:45 +0900
commita95e33cf9bebdce45ff17d5d4d0c5fcfd5a907dd (patch)
tree5cc47cda30a9bc6c85d88895f1a82e3b547e54f0
parentd5e8933d82e924d55d1a65987385ba81043dfc5e (diff)
downloadconnman-accepted/tizen/4.0/unified/20170921.073336.tar.gz
connman-accepted/tizen/4.0/unified/20170921.073336.tar.bz2
connman-accepted/tizen/4.0/unified/20170921.073336.zip
[Upstream] ipconfig: Ensure ifname is not NULL when setting IPv6 statesubmit/tizen_4.0/20170920.021207accepted/tizen/4.0/unified/20170921.073336
This is a quick fix for the issue where removal of an interface may cause IPv6 to be disabled/enabled on other interfaces. When removing an ipdevice in free_ipdevice(), it is ensured that the ifname (which we get from connman_inet_ifname()) is not NULL, before invoking set_ipv6_state(). If a NULL ifname is passed into set_ipv6_state(), it will apply the change to all interfaces instead of the intended one. Change-Id: Iefab1e1c87d2f08d1b73c80ec51dbdfcb3238fad Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
-rwxr-xr-xsrc/ipconfig.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ipconfig.c b/src/ipconfig.c
index 700384fe..ded1c11c 100755
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -404,8 +404,10 @@ static void free_ipdevice(gpointer data)
g_free(ipdevice->address);
- set_ipv6_state(ifname, ipdevice->ipv6_enabled);
- set_ipv6_privacy(ifname, ipdevice->ipv6_privacy);
+ if (ifname) {
+ set_ipv6_state(ifname, ipdevice->ipv6_enabled);
+ set_ipv6_privacy(ifname, ipdevice->ipv6_privacy);
+ }
g_free(ifname);
g_free(ipdevice);