FPII-2054: Verify setForegroundDispatch caller is in foreground.
Verify setForegroundDispatch caller is in foreground.
Bug: 28300969
Change-Id: Icadfe70cd06f921badd266e7a4efbae15a8c206a
(cherry picked from commit 0889ac84bd8325b41583033ac7597e020fd24600)
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java
index 82eba2d..d9b2820 100755
--- a/src/com/android/nfc/NfcService.java
+++ b/src/com/android/nfc/NfcService.java
@@ -804,7 +804,10 @@
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);
@@ -934,6 +937,10 @@
@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 {