From 7ba6f20cdff93a307f1c8b9a793102006da4a198 Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Mon, 23 May 2016 09:13:57 +0200 Subject: Verify setForegroundDispatch caller is in foreground. Bug: 28300969 CYNGNOS-3020 Change-Id: Icadfe70cd06f921badd266e7a4efbae15a8c206a (cherry picked from commit 0889ac84bd8325b41583033ac7597e020fd24600) --- src/com/android/nfc/NfcService.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java index 0f3feedc..153a650d 100755 --- a/src/com/android/nfc/NfcService.java +++ b/src/com/android/nfc/NfcService.java @@ -815,7 +815,10 @@ public class NfcService implements DeviceHostListener { public void setForegroundDispatch(PendingIntent intent, IntentFilter[] filters, TechListParcel techListsParcel) { NfcPermissions.enforceUserPermissions(mContext); - + if (!mForegroundUtils.isInForeground(Binder.getCallingUid())) { + Log.e(TAG, "setForegroundDispatch: Caller not in foreground."); + return; + } // Short-cut the disable path if (intent == null && filters == null && techListsParcel == null) { mNfcDispatcher.setForegroundDispatch(null, null, null); @@ -945,6 +948,10 @@ public class NfcService implements DeviceHostListener { @Override public void setReaderMode(IBinder binder, IAppCallback callback, int flags, Bundle extras) throws RemoteException { + if (!mForegroundUtils.isInForeground(Binder.getCallingUid())) { + Log.e(TAG, "setReaderMode: Caller not in foreground."); + return; + } synchronized (NfcService.this) { if (flags != 0) { try { -- cgit v1.2.3