shill: cellular: Avoid null pointer dereference if provider has no networks.
Also:
- Add a SetHomeProvider unit tests to CellularCapabilityUniversal.
- Free the test broadband provider database in CellularCapabilityUniversalTest.
BUG=chromium-os:33375
TEST=unit tests, tested on device
Change-Id: I37086954e51500840d6aa424964c973fccc6b22b
Reviewed-on: https://gerrit.chromium.org/gerrit/29872
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/cellular_capability_gsm.cc b/cellular_capability_gsm.cc
index af4e2df..a366ec2 100644
--- a/cellular_capability_gsm.cc
+++ b/cellular_capability_gsm.cc
@@ -473,7 +473,7 @@
}
home_provider_ = provider;
Cellular::Operator oper;
- if (provider->networks) {
+ if (provider->networks && provider->networks[0]) {
oper.SetCode(provider->networks[0]);
}
if (provider->country) {