summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Koji Fukui <koji.fukui@sonymobile.com> 2014-02-07 15:01:36 +0900
committer Akira Numata <akira.numata@sonymobile.com> 2015-10-19 14:22:45 +0900
commitf783c02c61850cad5ecac59261d70ff967c9b898 (patch)
tree41b6da3a6b68e15f4815783b08d3dadeceddf037
parent75693994f60bdec9a10db98ddb8addd2bc3f8bbb (diff)
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
-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 6ede29b9ba15..b378d8ee8201 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -984,6 +984,7 @@ public abstract class ContentResolver {
stableProvider = acquireProvider(uri);
}
releaseUnstableProvider(unstableProvider);
+ unstableProvider = null;
ParcelFileDescriptor pfd = new ParcelFileDescriptorInner(
fd.getParcelFileDescriptor(), stableProvider);
@@ -1128,6 +1129,7 @@ public abstract class ContentResolver {
stableProvider = acquireProvider(uri);
}
releaseUnstableProvider(unstableProvider);
+ unstableProvider = null;
ParcelFileDescriptor pfd = new ParcelFileDescriptorInner(
fd.getParcelFileDescriptor(), stableProvider);