From b5ec67911f43986e56d03340dc24de2454505b6a Mon Sep 17 00:00:00 2001 From: Yan Yan Date: Thu, 8 Jun 2023 02:07:53 +0000 Subject: [PATCH] Add a null pointer check to the VcnConfig Add a null pointer check before accessing the VcnConfig to retrieve the restricted transport types. Bug: 284381334 Test: atest CtsVcnTestCases, FrameworksVcnTestCases Change-Id: I0cbab6e38f68d8c669db2ddb324b013baa93204a --- .../java/com/android/server/VcnManagementService.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/VcnManagementService.java b/services/core/java/com/android/server/VcnManagementService.java index e8c85ce68f220..3efb6c304bec1 100644 --- a/services/core/java/com/android/server/VcnManagementService.java +++ b/services/core/java/com/android/server/VcnManagementService.java @@ -1065,13 +1065,20 @@ public class VcnManagementService extends IVcnManagementService.Stub { boolean isRestricted = false; synchronized (mLock) { final Vcn vcn = mVcns.get(subGrp); + final VcnConfig vcnConfig = mConfigs.get(subGrp); if (vcn != null) { + if (vcnConfig == null) { + // TODO: b/284381334 Investigate for the root cause of this issue + // and handle it properly + logWtf("Vcn instance exists but VcnConfig does not for " + subGrp); + } + if (vcn.getStatus() == VCN_STATUS_CODE_ACTIVE) { isVcnManagedNetwork = true; } final Set restrictedTransports = mDeps.getRestrictedTransports( - subGrp, mLastSnapshot, mConfigs.get(subGrp)); + subGrp, mLastSnapshot, vcnConfig); for (int restrictedTransport : restrictedTransports) { if (ncCopy.hasTransport(restrictedTransport)) { if (restrictedTransport == TRANSPORT_CELLULAR