From 674ecaa6eb356539a56d84057cc9fa7b5aeed0b1 Mon Sep 17 00:00:00 2001 From: Ben Chan Date: Mon, 26 Nov 2012 23:56:27 -0800 Subject: broadband-modem: check for NULL response in parse_caps_{cpin,cgmm,gcap} --- src/mm-broadband-modem.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 9161c82c..174de9d1 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -435,10 +435,13 @@ parse_caps_gcap (MMBaseModem *self, const ModemCaps *cap = modem_caps; guint32 ret = 0; + if (!response) + return FALSE; + /* Some modems (Huawei E160g) won't respond to +GCAP with no SIM, but * will respond to ATI. Ignore the error and continue. */ - if (response && strstr (response, "+CME ERROR:")) + if (strstr (response, "+CME ERROR:")) return FALSE; while (cap->name) { @@ -465,6 +468,9 @@ parse_caps_cpin (MMBaseModem *self, GVariant **result, GError **result_error) { + if (!response) + return FALSE; + if (strcasestr (response, "SIM PIN") || strcasestr (response, "SIM PUK") || strcasestr (response, "PH-SIM PIN") || @@ -498,6 +504,9 @@ parse_caps_cgmm (MMBaseModem *self, GVariant **result, GError **result_error) { + if (!response) + return FALSE; + /* This check detects some really old Motorola GPRS dongles and phones */ if (strstr (response, "GSM900") || strstr (response, "GSM1800") || -- cgit v1.2.3