From 5df024f57afe1cbc2a31e10bcb3b6e92bbc33104 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 17 Feb 2015 17:20:16 +0100 Subject: [PATCH] wwan: don't assume DNS info is always available Fixes segfault with e.g. Ericsson modems that reply just with IP+gateway, without DNS info. [mm-port-serial-at.c:440] debug_log(): (ttyACM8): --> 'AT*E2IPCFG?' [mm-port-serial-at.c:440] debug_log(): (ttyACM8): <-- '*E2IPCFG: (1,"10.191.64.12")(2,"10.191.64.10")' [mm-port-serial-at.c:440] debug_log(): (ttyACM8): <-- 'OK' [mm-port-serial.c:1296] mm_port_serial_close(): (ttyACM8) device open count is 1 (close) [mm-port.c:95] mm_port_set_connected(): (wwan0): port now connected [mm-base-bearer.c:488] connect_ready(): Connected bearer '/org/freedesktop/ModemManager1/Bearer/0' [mm-iface-modem.c:1392] __iface_modem_update_state_internal(): Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> connected) Activation (ttyACM8) Stage 3 of 5 (IP Configure Start) started... (ttyACM8): device state change: config -> ip-config (reason 'none') [50 70 0] Activation (ttyACM8) Stage 4 of 5 (IPv6 Configure Timeout) scheduled... Activation (ttyACM8) Stage 3 of 5 (IP Configure Start) complete. (ttyACM8): IPv4 static configuration: address 10.191.64.12/28 gateway 10.191.64.10 Errore di segmentazione http://lists.freedesktop.org/archives/modemmanager-devel/2015-February/001758.html --- src/devices/wwan/nm-modem-broadband.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/devices/wwan/nm-modem-broadband.c b/src/devices/wwan/nm-modem-broadband.c index 97d05ee2cd..bea7caf380 100644 --- a/src/devices/wwan/nm-modem-broadband.c +++ b/src/devices/wwan/nm-modem-broadband.c @@ -708,7 +708,7 @@ static_stage3_ip4_done (NMModemBroadband *self) /* DNS servers */ dns = mm_bearer_ip_config_get_dns (self->priv->ipv4_config); - for (i = 0; dns[i]; i++) { + for (i = 0; dns && dns[i]; i++) { if ( ip4_string_to_num (dns[i], &address_network) && address_network > 0) { nm_ip4_config_add_nameserver (config, address_network);