Merge change 6363 into donut

* changes:
  LocationManagerService: Use Context.checkCallingOrSelfPermission for permission checks
This commit is contained in:
Android (Google) Code Review
2009-07-07 11:02:04 -07:00

View File

@@ -648,14 +648,14 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
private void checkPermissionsSafe(String provider) { private void checkPermissionsSafe(String provider) {
if (LocationManager.GPS_PROVIDER.equals(provider) if (LocationManager.GPS_PROVIDER.equals(provider)
&& (mContext.checkCallingPermission(ACCESS_FINE_LOCATION) && (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED)) { != PackageManager.PERMISSION_GRANTED)) {
throw new SecurityException("Requires ACCESS_FINE_LOCATION permission"); throw new SecurityException("Requires ACCESS_FINE_LOCATION permission");
} }
if (LocationManager.NETWORK_PROVIDER.equals(provider) if (LocationManager.NETWORK_PROVIDER.equals(provider)
&& (mContext.checkCallingPermission(ACCESS_FINE_LOCATION) && (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) != PackageManager.PERMISSION_GRANTED)
&& (mContext.checkCallingPermission(ACCESS_COARSE_LOCATION) && (mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED)) { != PackageManager.PERMISSION_GRANTED)) {
throw new SecurityException( throw new SecurityException(
"Requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission"); "Requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission");
@@ -664,14 +664,14 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
private boolean isAllowedProviderSafe(String provider) { private boolean isAllowedProviderSafe(String provider) {
if (LocationManager.GPS_PROVIDER.equals(provider) if (LocationManager.GPS_PROVIDER.equals(provider)
&& (mContext.checkCallingPermission(ACCESS_FINE_LOCATION) && (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED)) { != PackageManager.PERMISSION_GRANTED)) {
return false; return false;
} }
if (LocationManager.NETWORK_PROVIDER.equals(provider) if (LocationManager.NETWORK_PROVIDER.equals(provider)
&& (mContext.checkCallingPermission(ACCESS_FINE_LOCATION) && (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) != PackageManager.PERMISSION_GRANTED)
&& (mContext.checkCallingPermission(ACCESS_COARSE_LOCATION) && (mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED)) { != PackageManager.PERMISSION_GRANTED)) {
return false; return false;
} }
@@ -1075,7 +1075,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
if (mGpsStatusProvider == null) { if (mGpsStatusProvider == null) {
return false; return false;
} }
if (mContext.checkCallingPermission(ACCESS_FINE_LOCATION) != if (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) { PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Requires ACCESS_FINE_LOCATION permission"); throw new SecurityException("Requires ACCESS_FINE_LOCATION permission");
} }
@@ -1103,7 +1103,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
// first check for permission to the provider // first check for permission to the provider
checkPermissionsSafe(provider); checkPermissionsSafe(provider);
// and check for ACCESS_LOCATION_EXTRA_COMMANDS // and check for ACCESS_LOCATION_EXTRA_COMMANDS
if ((mContext.checkCallingPermission(ACCESS_LOCATION_EXTRA_COMMANDS) if ((mContext.checkCallingOrSelfPermission(ACCESS_LOCATION_EXTRA_COMMANDS)
!= PackageManager.PERMISSION_GRANTED)) { != PackageManager.PERMISSION_GRANTED)) {
throw new SecurityException("Requires ACCESS_LOCATION_EXTRA_COMMANDS permission"); throw new SecurityException("Requires ACCESS_LOCATION_EXTRA_COMMANDS permission");
} }