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

Commit 35534d1c authored by Koji Fukui's avatar Koji Fukui Committed by Steve Kondik
Browse files

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
parent e7656615
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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);