OSDN Git Service

Fixes the system server crash issues caused by null pointer in
authorsongjinshi <songjinshi@xiaomi.com>
Wed, 18 May 2016 11:55:32 +0000 (19:55 +0800)
committerXin Li <delphij@google.com>
Thu, 2 Jun 2016 17:56:09 +0000 (17:56 +0000)
NetworkPolicyManagerService.

if the multi user occurs switch and remove then to getPackagesForUid
the return value will got null,because the user remove is not synced
with the getPackagesForUid,so we must check the return value for
getPackagesForUid to avoid the crash.

https://code.google.com/p/android/issues/detail?id=211972

Change-Id: If921582da86dbe862f2dad337b0a8d1f20593c99
Signed-off-by: songjinshi <songjinshi@xiaomi.com>
services/core/java/com/android/server/net/NetworkPolicyManagerService.java

index 02c16ae..aff87ff 100644 (file)
@@ -2326,9 +2326,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
         final String[] packages = mContext.getPackageManager().getPackagesForUid(uid);
         final int userId = UserHandle.getUserId(uid);
 
-        for (String packageName : packages) {
-            if (!mUsageStats.isAppIdle(packageName, uid, userId)) {
-                return false;
+        if (packages != null) {
+            for (String packageName : packages) {
+                if (!mUsageStats.isAppIdle(packageName, uid, userId)) {
+                    return false;
+                }
             }
         }
         return true;