Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46a8fc71 authored by Arthur Ishiguro's avatar Arthur Ishiguro
Browse files

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
parent 3280bff9
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -165,7 +165,18 @@ import java.util.List;
        aidlNanoAppBinary.flags = nanoAppBinary.getFlags();
        aidlNanoAppBinary.targetChreApiMajorVersion = nanoAppBinary.getTargetChreApiMajorVersion();
        aidlNanoAppBinary.targetChreApiMinorVersion = nanoAppBinary.getTargetChreApiMinorVersion();
        // 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;
    }