atutil: Ignore invalid CLCC results
authorDenis Kenzior <denkenz@gmail.com>
Fri, 24 Feb 2012 05:14:08 +0000 (23:14 -0600)
committerDenis Kenzior <denkenz@gmail.com>
Tue, 28 Feb 2012 02:28:42 +0000 (20:28 -0600)
Some phones report CLCC calls with out-of-range info.  E.g. call index
being 0 (it is 1 based according to 27.007) and call states being
reported as '6' (valid call states are 0-5.)

drivers/atmodem/atutil.c

index b82ed20..0c6aab4 100644 (file)
@@ -131,12 +131,18 @@ GSList *at_util_parse_clcc(GAtResult *result)
                if (!g_at_result_iter_next_number(&iter, &id))
                        continue;
 
+               if (id == 0)
+                       continue;
+
                if (!g_at_result_iter_next_number(&iter, &dir))
                        continue;
 
                if (!g_at_result_iter_next_number(&iter, &status))
                        continue;
 
+               if (status > 5)
+                       continue;
+
                if (!g_at_result_iter_next_number(&iter, &type))
                        continue;