summaryrefslogtreecommitdiffstats
path: root/core/java/android/content
diff options
context:
space:
mode:
authorKoji Fukui <koji.fukui@sonymobile.com>2014-02-07 15:01:36 +0900
committerSteve Kondik <steve@cyngn.com>2015-11-07 05:40:48 -0800
commit35534d1c0be77ef547860678c5687f417fc57368 (patch)
tree18b34816a3c79a25b2a8f1e7033702b0d44717f6 /core/java/android/content
parente76566150f9529627f707de4f124f2eab06ab6eb (diff)
downloadframeworks_base-35534d1c0be77ef547860678c5687f417fc57368.zip
frameworks_base-35534d1c0be77ef547860678c5687f417fc57368.tar.gz
frameworks_base-35534d1c0be77ef547860678c5687f417fc57368.tar.bz2
Avoid a double decrease of reference counter for unstable provider
In some APIs unstable provider is released twice. Unexpected release of unstable provider makes the reference counter for unstable provider invalid state and it causes application crash. This change avoids unexpected double decrease of reference counter for unstable provider by setting null to prevent extra release in finally block. Change-Id: Ie2985c316ffcb6a9db7570c46347035c24d226af
Diffstat (limited to 'core/java/android/content')
-rw-r--r--core/java/android/content/ContentResolver.java2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java
index 6b00abe..9208faf 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -986,6 +986,7 @@ public abstract class ContentResolver {
stableProvider = acquireProvider(uri);
}
releaseUnstableProvider(unstableProvider);
+ unstableProvider = null;
ParcelFileDescriptor pfd = new ParcelFileDescriptorInner(
fd.getParcelFileDescriptor(), stableProvider);
@@ -1130,6 +1131,7 @@ public abstract class ContentResolver {
stableProvider = acquireProvider(uri);
}
releaseUnstableProvider(unstableProvider);
+ unstableProvider = null;
ParcelFileDescriptor pfd = new ParcelFileDescriptorInner(
fd.getParcelFileDescriptor(), stableProvider);