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

Commit b254ab6a authored by Takayuki Hoshi's avatar Takayuki Hoshi
Browse files

Fix a bug where LocationManager's addGpsStatusListener does not throw a

SecurityException if LocationManagerService.mGpsStatusProvider is null
even when ACCESS_FINE_LOCATION permission is not present.

Tested under Nexus 5 and Molly with lmp-mr1-dev build with
android.location2.cts.LocationManagerTest#testGpsStatusListener CTS
test case such that it has been modified to expect SecurityException
only from .addGpsStatusListener.

Bug: 18095673
Change-Id: I09f9e7224a3b0eab91001f5092f0ef6e0ada7b08
parent 6c9b0847
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1796,9 +1796,6 @@ public class LocationManagerService extends ILocationManager.Stub {

    @Override
    public boolean addGpsStatusListener(IGpsStatusListener listener, String packageName) {
        if (mGpsStatusProvider == null) {
            return false;
        }
        int allowedResolutionLevel = getCallerAllowedResolutionLevel();
        checkResolutionLevelIsSufficientForProviderUse(allowedResolutionLevel,
                LocationManager.GPS_PROVIDER);
@@ -1813,6 +1810,10 @@ public class LocationManagerService extends ILocationManager.Stub {
            Binder.restoreCallingIdentity(ident);
        }

        if (mGpsStatusProvider == null) {
            return false;
        }

        try {
            mGpsStatusProvider.addGpsStatusListener(listener);
        } catch (RemoteException e) {