From 2e3bff33f4ebeb6ac2272ab377d00416ef1af83f Mon Sep 17 00:00:00 2001 From: Mihai Prica Date: Fri, 23 Aug 2013 15:57:00 +0300 Subject: connman-gnome: fix DHCP segfault In networks that don't have a DHCP server configured, ipv4 address allocation fails and the ipv4 structure doesn't get populated. The patch checks this case also. [YOCTO #3945] Signed-off-by: Mihai Prica Signed-off-by: Emilia Ciobanu Signed-off-by: Saul Wold --- .../connman-gnome/null_check_for_ipv4_config.patch | 36 ++++++++++++++++++++++ .../connman/connman-gnome_0.7.bb | 1 + 2 files changed, 37 insertions(+) create mode 100644 meta/recipes-connectivity/connman/connman-gnome/null_check_for_ipv4_config.patch (limited to 'meta/recipes-connectivity') diff --git a/meta/recipes-connectivity/connman/connman-gnome/null_check_for_ipv4_config.patch b/meta/recipes-connectivity/connman/connman-gnome/null_check_for_ipv4_config.patch new file mode 100644 index 0000000000..0421cda0b2 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome/null_check_for_ipv4_config.patch @@ -0,0 +1,36 @@ +In networks that don't have a DHCP server configured, ipv4 address +allocation fails and the ipv4 structure doesn't get populated. When +the GUI is trying to read the ipv4_config.method field to see whether +it contains "dhcp" string, a segmentation fault is generated. + +Ethernet manual configuration behavior remains unchanged after this fix. + +Upstream-Status: Pending + +Signed-off-by: Emilia Ciobanu +Index: git/properties/ethernet.c +=================================================================== +--- git.orig/properties/ethernet.c ++++ git/properties/ethernet.c +@@ -194,7 +194,7 @@ void add_ethernet_service(GtkWidget *mai + + data->button = button; + +- if (g_str_equal(ipv4_config.method, "dhcp") == TRUE) ++ if (!ipv4_config.method || g_str_equal(ipv4_config.method, "dhcp") == TRUE) + update_ethernet_ipv4(data, CONNMAN_POLICY_DHCP); + else + update_ethernet_ipv4(data, CONNMAN_POLICY_MANUAL); +Index: git/properties/wifi.c +=================================================================== +--- git.orig/properties/wifi.c ++++ git/properties/wifi.c +@@ -230,7 +230,7 @@ static void wifi_ipconfig(GtkWidget *tab + + data->ipv4_config = ipv4_config; + +- if (g_str_equal(ipv4_config.method, "dhcp") == TRUE) ++ if (!ipv4_config.method || g_str_equal(ipv4_config.method, "dhcp") == TRUE) + update_wifi_ipv4(data, CONNMAN_POLICY_DHCP); + else + update_wifi_ipv4(data, CONNMAN_POLICY_MANUAL); diff --git a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb index 6299e70fe9..f2ed6721be 100644 --- a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb +++ b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb @@ -12,6 +12,7 @@ DEPENDS = "gtk+ dbus-glib intltool-native" SRCREV = "cf3c325b23dae843c5499a113591cfbc98acb143" SRC_URI = "git://github.com/connectivity/connman-gnome.git;protocol=git \ file://0001-Removed-icon-from-connman-gnome-about-applet.patch \ + file://null_check_for_ipv4_config.patch \ file://images/* \ " -- cgit 1.2.3-korg