From 7108493e16d24223e683d7b9a965ce477600694b Mon Sep 17 00:00:00 2001 From: Henry Fang Date: Tue, 27 Oct 2020 12:03:11 -0700 Subject: [PATCH] Handling none listener case Fix the issue: NULL pointer(mEventHandler) is accessed if the listener isn't set. bug: 171025570 Test: Manual Change-Id: Ie136f6358f3917a62cb0a7f01870ddb590e90b0c --- media/java/android/media/MediaCas.java | 28 ++++++++++++++++---------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/media/java/android/media/MediaCas.java b/media/java/android/media/MediaCas.java index 98ca2f9c42537..4b208ce1ec377 100644 --- a/media/java/android/media/MediaCas.java +++ b/media/java/android/media/MediaCas.java @@ -362,28 +362,34 @@ public final class MediaCas implements AutoCloseable { @Override public void onEvent(int event, int arg, @Nullable ArrayList data) throws RemoteException { - mEventHandler.sendMessage(mEventHandler.obtainMessage( + if (mEventHandler != null) { + mEventHandler.sendMessage(mEventHandler.obtainMessage( EventHandler.MSG_CAS_EVENT, event, arg, data)); + } } @Override public void onSessionEvent(@NonNull ArrayList sessionId, int event, int arg, @Nullable ArrayList data) throws RemoteException { - Message msg = mEventHandler.obtainMessage(); - msg.what = EventHandler.MSG_CAS_SESSION_EVENT; - msg.arg1 = event; - msg.arg2 = arg; - Bundle bundle = new Bundle(); - bundle.putByteArray(EventHandler.SESSION_KEY, toBytes(sessionId)); - bundle.putByteArray(EventHandler.DATA_KEY, toBytes(data)); - msg.setData(bundle); - mEventHandler.sendMessage(msg); + if (mEventHandler != null) { + Message msg = mEventHandler.obtainMessage(); + msg.what = EventHandler.MSG_CAS_SESSION_EVENT; + msg.arg1 = event; + msg.arg2 = arg; + Bundle bundle = new Bundle(); + bundle.putByteArray(EventHandler.SESSION_KEY, toBytes(sessionId)); + bundle.putByteArray(EventHandler.DATA_KEY, toBytes(data)); + msg.setData(bundle); + mEventHandler.sendMessage(msg); + } } @Override public void onStatusUpdate(byte status, int arg) throws RemoteException { - mEventHandler.sendMessage(mEventHandler.obtainMessage( + if (mEventHandler != null) { + mEventHandler.sendMessage(mEventHandler.obtainMessage( EventHandler.MSG_CAS_STATUS_EVENT, status, arg)); + } } };