Catch exceptions when creating AIDL nanoapp binary

Avoid remote exception at the service.

Bug: 194285834
Test: Run CHQTS bad nanoapp test and verify no crash
Change-Id: I235f8e950ad747b99eedec41da70bac045bd29f5
This commit is contained in:
Arthur Ishiguro
2021-09-10 10:51:19 -07:00
parent 3280bff9d8
commit 46a8fc712a

View File

@@ -165,7 +165,18 @@ import java.util.List;
aidlNanoAppBinary.flags = nanoAppBinary.getFlags();
aidlNanoAppBinary.targetChreApiMajorVersion = nanoAppBinary.getTargetChreApiMajorVersion();
aidlNanoAppBinary.targetChreApiMinorVersion = nanoAppBinary.getTargetChreApiMinorVersion();
aidlNanoAppBinary.customBinary = nanoAppBinary.getBinaryNoHeader();
// This explicit definition is required to avoid erroneous behavior at the binder.
aidlNanoAppBinary.customBinary = new byte[0];
// Log exceptions while processing the binary, but continue to pass down the binary
// since the error checking is deferred to the Context Hub.
try {
aidlNanoAppBinary.customBinary = nanoAppBinary.getBinaryNoHeader();
} catch (IndexOutOfBoundsException e) {
Log.w(TAG, e.getMessage());
} catch (NullPointerException e) {
Log.w(TAG, "NanoApp binary was null");
}
return aidlNanoAppBinary;
}