From ffec33272721e3cc28437c3770168c4b839f30d1 Mon Sep 17 00:00:00 2001 From: Vinit Deshapnde Date: Mon, 16 Sep 2013 12:41:12 -0700 Subject: [PATCH] Fix an NPE in WifiService The check to validate incoming configurations is flagging a correct API usage as well - which doesn't provide any configuration to test. Fixing code to accommodate this. Bug: 10749041 Change-Id: I972f0edbdfa14aaa3edb34e4c6784b436c288383 --- services/java/com/android/server/wifi/WifiService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/wifi/WifiService.java b/services/java/com/android/server/wifi/WifiService.java index 5a24ebb4cb1f7..025cd89bc0d99 100644 --- a/services/java/com/android/server/wifi/WifiService.java +++ b/services/java/com/android/server/wifi/WifiService.java @@ -172,10 +172,16 @@ public final class WifiService extends IWifiManager.Stub { case WifiManager.CONNECT_NETWORK: case WifiManager.SAVE_NETWORK: { WifiConfiguration config = (WifiConfiguration) msg.obj; - if (config.isValid()) { + int networkId = msg.arg1; + if (config != null && config.isValid()) { + if (DBG) Slog.d(TAG, "Connect with config" + config); + mWifiStateMachine.sendMessage(Message.obtain(msg)); + } else if (config == null + && networkId != WifiConfiguration.INVALID_NETWORK_ID) { + if (DBG) Slog.d(TAG, "Connect with networkId" + networkId); mWifiStateMachine.sendMessage(Message.obtain(msg)); } else { - Slog.d(TAG, "ClientHandler.handleMessage ignoring msg=" + msg); + Slog.e(TAG, "ClientHandler.handleMessage ignoring invalid msg=" + msg); if (msg.what == WifiManager.CONNECT_NETWORK) { replyFailed(msg, WifiManager.CONNECT_NETWORK_FAILED); } else {