summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tan <samueltan@google.com>2016-07-18 09:49:59 -0700
committergitbuildkicker <android-build@google.com>2016-08-26 16:22:02 -0700
commitfc6c67ccf3f1819e90cfd0f10408a2724fbaff97 (patch)
treeaf324763b2ce2a9e0532619e8b870dfb3062495e
parent7a0e978a5ba16f237c7ef8aac9cb6154d2d183bd (diff)
downloadandroid_frameworks_opt_net_wifi-fc6c67ccf3f1819e90cfd0f10408a2724fbaff97.tar.gz
android_frameworks_opt_net_wifi-fc6c67ccf3f1819e90cfd0f10408a2724fbaff97.tar.bz2
android_frameworks_opt_net_wifi-fc6c67ccf3f1819e90cfd0f10408a2724fbaff97.zip
VenueNameElement: fix off-by-one enum bounds check
Fix the off-by-one error in the conditionals that check whether the Venue Group and Venue Type codes in the ANQP element are in the "Reserved" range. BUG: 30169673 BUG: 29464811 TEST: Manually set up AP with Hotspot 2.0 support, broadcasting Venue Group value 0xc, and ensure that device does not crash when in range of this AP. Change-Id: I14adc3a919e19b67fc0f46bf09d0cffb88b5354e (cherry picked from commit 48ee5f1e1c6e2a2dc63e9cb84c42f532c8a6847a)
-rw-r--r--service/java/com/android/server/wifi/anqp/VenueNameElement.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/service/java/com/android/server/wifi/anqp/VenueNameElement.java b/service/java/com/android/server/wifi/anqp/VenueNameElement.java
index f0b27dd33..f944c4098 100644
--- a/service/java/com/android/server/wifi/anqp/VenueNameElement.java
+++ b/service/java/com/android/server/wifi/anqp/VenueNameElement.java
@@ -29,13 +29,13 @@ public class VenueNameElement extends ANQPElement {
int group = payload.get() & Constants.BYTE_MASK;
int type = payload.get() & Constants.BYTE_MASK;
- if (group >= VenueGroup.values().length) {
+ if (group >= VenueGroup.Reserved.ordinal()) {
mGroup = VenueGroup.Reserved;
mType = VenueType.Reserved;
} else {
mGroup = VenueGroup.values()[group];
type += sGroupBases.get(mGroup);
- if (type >= VenueType.values().length) {
+ if (type >= VenueType.Reserved.ordinal()) {
mType = VenueType.Reserved;
} else {
mType = VenueType.values()[type];
@@ -82,7 +82,7 @@ public class VenueNameElement extends ANQPElement {
UtilityMiscellaneous,
Vehicular,
Outdoor,
- Reserved
+ Reserved // Note: this must be the last enum constant
}
public enum VenueType {
@@ -164,7 +164,7 @@ public class VenueNameElement extends ANQPElement {
BusStop,
Kiosk,
- Reserved
+ Reserved // Note: this must be the last enum constant
}
private static final VenueType[] PerGroup =