From b22a60235934eaf9f09fd29d817a8a0fb461f4d6 Mon Sep 17 00:00:00 2001 From: Winson Date: Wed, 9 Mar 2022 12:22:51 -0800 Subject: [PATCH] Null check signature array before comparison SigningDetails.UNKNOWN is defined with a null array, so if any package fails to scan signatures, this code would crash with an NPE. Instead of failing, just treat it as an empty signature array. It's unclear what caused this to pop up now, as this code hasn't changed in a long while. Bug: 223469467 Test: presubmit Change-Id: Icdcfaaa3586898873b719c74dd5662b03e3fabae --- core/java/android/content/pm/Signature.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/content/pm/Signature.java b/core/java/android/content/pm/Signature.java index 3f5c5d21428e3..d94b0d8f9072e 100644 --- a/core/java/android/content/pm/Signature.java +++ b/core/java/android/content/pm/Signature.java @@ -312,7 +312,7 @@ public class Signature implements Parcelable { * @hide */ public static boolean areExactMatch(Signature[] a, Signature[] b) { - return (a.length == b.length) && ArrayUtils.containsAll(a, b) + return (ArrayUtils.size(a) == ArrayUtils.size(b)) && ArrayUtils.containsAll(a, b) && ArrayUtils.containsAll(b, a); } @@ -387,4 +387,4 @@ public class Signature implements Parcelable { return sPrime; } -} \ No newline at end of file +}