[oe-commits] Mihai Prica : connman-gnome: fix DHCP segfault

git at git.openembedded.org git at git.openembedded.org
Mon Aug 26 10:36:49 UTC 2013


Module: openembedded-core.git
Branch: master
Commit: 2e3bff33f4ebeb6ac2272ab377d00416ef1af83f
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=2e3bff33f4ebeb6ac2272ab377d00416ef1af83f

Author: Mihai Prica <mihai.prica at intel.com>
Date:   Fri Aug 23 15:57:00 2013 +0300

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 <mihai.prica at intel.com>
Signed-off-by: Emilia Ciobanu <emilia.maria.silvia.ciobanu at intel.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 .../connman-gnome/null_check_for_ipv4_config.patch |   36 ++++++++++++++++++++
 .../connman/connman-gnome_0.7.bb                   |    1 +
 2 files changed, 37 insertions(+), 0 deletions(-)

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 0000000..0421cda
--- /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 <emilia.maria.silvia.ciobanu at intel.com>
+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 6299e70..f2ed672 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/* \
           "
 



More information about the Openembedded-commits mailing list