Merge "Fix logic inversion bug for "basicGrant"." into rvc-dev

This commit is contained in:
Jeff Sharkey
2020-05-06 22:03:36 +00:00
committed by Android (Google) Code Review
2 changed files with 4 additions and 5 deletions

View File

@@ -21,9 +21,8 @@ import static android.Manifest.permission.FORCE_PERSISTABLE_URI_PERMISSIONS;
import static android.Manifest.permission.GET_APP_GRANTED_URI_PERMISSIONS; import static android.Manifest.permission.GET_APP_GRANTED_URI_PERMISSIONS;
import static android.Manifest.permission.INTERACT_ACROSS_USERS; import static android.Manifest.permission.INTERACT_ACROSS_USERS;
import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY; import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY;
import static android.content.Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION;
import static android.content.Intent.FLAG_GRANT_PREFIX_URI_PERMISSION; import static android.content.Intent.FLAG_GRANT_PREFIX_URI_PERMISSION;
import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
import static android.content.Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
import static android.content.pm.PackageManager.MATCH_ANY_USER; import static android.content.pm.PackageManager.MATCH_ANY_USER;
import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING; import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE; import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
@@ -1138,8 +1137,8 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub {
targetHoldsPermission = false; targetHoldsPermission = false;
} }
final boolean basicGrant = (modeFlags & ~(FLAG_GRANT_READ_URI_PERMISSION final boolean basicGrant = (modeFlags
| FLAG_GRANT_WRITE_URI_PERMISSION)) == 0; & (FLAG_GRANT_PERSISTABLE_URI_PERMISSION | FLAG_GRANT_PREFIX_URI_PERMISSION)) == 0;
if (basicGrant && targetHoldsPermission) { if (basicGrant && targetHoldsPermission) {
// When caller holds permission, and this is a simple permission // When caller holds permission, and this is a simple permission
// grant, we can skip generating any bookkeeping; when any advanced // grant, we can skip generating any bookkeeping; when any advanced

View File

@@ -171,7 +171,7 @@ public class UriGrantsManagerServiceTest {
final Uri uri = Uri.parse("content://" + PKG_COMPLEX + "/"); final Uri uri = Uri.parse("content://" + PKG_COMPLEX + "/");
{ {
final Intent intent = new Intent(Intent.ACTION_VIEW, uri) final Intent intent = new Intent(Intent.ACTION_VIEW, uri)
.addFlags(FLAG_READ); .addFlags(FLAG_READ | Intent.FLAG_ACTIVITY_CLEAR_TASK);
assertNull(mService.checkGrantUriPermissionFromIntent(UID_PRIMARY_COMPLEX, PKG_SOCIAL, assertNull(mService.checkGrantUriPermissionFromIntent(UID_PRIMARY_COMPLEX, PKG_SOCIAL,
intent, intent.getFlags(), null, USER_PRIMARY)); intent, intent.getFlags(), null, USER_PRIMARY));
} }