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

Commit c09b6a46 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "Better enforcement in DocumentsProvider.call()." into klp-dev

parents a9f28eea 8a2998ea
Loading
Loading
Loading
Loading
+107 −105
Original line number Diff line number Diff line
@@ -398,7 +398,17 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
            return AppOpsManager.MODE_ALLOWED;
        }

        private void enforceReadPermissionInner(Uri uri) throws SecurityException {
        private int enforceWritePermission(String callingPkg, Uri uri) throws SecurityException {
            enforceWritePermissionInner(uri);
            if (mWriteOp != AppOpsManager.OP_NONE) {
                return mAppOpsManager.noteOp(mWriteOp, Binder.getCallingUid(), callingPkg);
            }
            return AppOpsManager.MODE_ALLOWED;
        }
    }

    /** {@hide} */
    protected void enforceReadPermissionInner(Uri uri) throws SecurityException {
        final Context context = getContext();
        final int pid = Binder.getCallingPid();
        final int uid = Binder.getCallingUid();
@@ -459,15 +469,8 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
                + ", uid=" + uid + failReason);
    }

        private int enforceWritePermission(String callingPkg, Uri uri) throws SecurityException {
            enforceWritePermissionInner(uri);
            if (mWriteOp != AppOpsManager.OP_NONE) {
                return mAppOpsManager.noteOp(mWriteOp, Binder.getCallingUid(), callingPkg);
            }
            return AppOpsManager.MODE_ALLOWED;
        }

        private void enforceWritePermissionInner(Uri uri) throws SecurityException {
    /** {@hide} */
    protected void enforceWritePermissionInner(Uri uri) throws SecurityException {
        final Context context = getContext();
        final int pid = Binder.getCallingPid();
        final int uid = Binder.getCallingUid();
@@ -527,7 +530,6 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
                + ContentProvider.this.getClass().getName() + " uri " + uri + " from pid=" + pid
                + ", uid=" + uid + failReason);
    }
    }

    /**
     * Retrieves the Context this provider is running in.  Only available once
+1 −4
Original line number Diff line number Diff line
@@ -512,10 +512,7 @@ public abstract class DocumentsProvider extends ContentProvider {
        final boolean callerHasManage =
                context.checkCallingOrSelfPermission(android.Manifest.permission.MANAGE_DOCUMENTS)
                == PackageManager.PERMISSION_GRANTED;
        if (!callerHasManage) {
            getContext().enforceCallingOrSelfUriPermission(
                    documentUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION, method);
        }
        enforceWritePermissionInner(documentUri);

        final Bundle out = new Bundle();
        try {