diff options
author | Koji Fukui <koji.fukui@sonymobile.com> | 2014-02-07 15:01:36 +0900 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-11-07 05:40:48 -0800 |
commit | 35534d1c0be77ef547860678c5687f417fc57368 (patch) | |
tree | 18b34816a3c79a25b2a8f1e7033702b0d44717f6 /core/java/android/content | |
parent | e76566150f9529627f707de4f124f2eab06ab6eb (diff) | |
download | frameworks_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.java | 2 |
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); |