diff options
| author | Dianne Hackborn <hackbod@google.com> | 2010-08-21 09:34:43 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-08-21 09:34:43 -0700 |
| commit | 37444f4239b26944d24f039c537d411ac7004243 (patch) | |
| tree | 97582ba0e3c019cfcc78f87b9c79ea58af68ee45 /core/java/android/content/ContentProvider.java | |
| parent | 2abd598f4c338a27ce657b5dab6247ab55b7abc0 (diff) | |
| parent | d172594e3a1e25f1f2c190e99421cb7d4963389b (diff) | |
am d172594e: am cf6d2a1d: Merge "Fix issue #2845673: android:exported="false" is not obeyed" into gingerbread
Merge commit 'd172594e3a1e25f1f2c190e99421cb7d4963389b'
* commit 'd172594e3a1e25f1f2c190e99421cb7d4963389b':
Fix issue #2845673: android:exported="false" is not obeyed
Diffstat (limited to 'core/java/android/content/ContentProvider.java')
| -rw-r--r-- | core/java/android/content/ContentProvider.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java index 22bce056ef2d..88e012397083 100644 --- a/core/java/android/content/ContentProvider.java +++ b/core/java/android/content/ContentProvider.java @@ -91,6 +91,7 @@ public abstract class ContentProvider implements ComponentCallbacks { private String mReadPermission; private String mWritePermission; private PathPermission[] mPathPermissions; + private boolean mExported; private Transport mTransport = new Transport(); @@ -274,9 +275,9 @@ public abstract class ContentProvider implements ComponentCallbacks { final Context context = getContext(); final String rperm = getReadPermission(); final int pid = Binder.getCallingPid(); - if (rperm == null + if (mExported && (rperm == null || context.checkPermission(rperm, pid, uid) - == PackageManager.PERMISSION_GRANTED) { + == PackageManager.PERMISSION_GRANTED)) { return; } @@ -320,9 +321,9 @@ public abstract class ContentProvider implements ComponentCallbacks { final Context context = getContext(); final String wperm = getWritePermission(); final int pid = Binder.getCallingPid(); - if (wperm == null + if (mExported && (wperm == null || context.checkPermission(wperm, pid, uid) - == PackageManager.PERMISSION_GRANTED) { + == PackageManager.PERMISSION_GRANTED)) { return true; } @@ -972,6 +973,7 @@ public abstract class ContentProvider implements ComponentCallbacks { setReadPermission(info.readPermission); setWritePermission(info.writePermission); setPathPermissions(info.pathPermissions); + mExported = info.exported; } ContentProvider.this.onCreate(); } |
