OSDN Git Service

[NAN] TLV utilities iterator - throw correct exception
authorEtan Cohen <etancohen@google.com>
Mon, 18 Jul 2016 17:37:20 +0000 (10:37 -0700)
committerEtan Cohen <etancohen@google.com>
Mon, 18 Jul 2016 17:37:20 +0000 (10:37 -0700)
Make sure that iterator.next() validates that next element exists -
otherwise throw the exception specified by the interface.

Bug: 30096512
Change-Id: I327da433e3f1181e272c81ee503cbe8aab323f7e

wifi/java/android/net/wifi/nan/TlvBufferUtils.java

index 8ad9fa3..7ce24d5 100644 (file)
@@ -24,6 +24,7 @@ import java.nio.BufferOverflowException;
 import java.nio.ByteOrder;
 import java.util.Arrays;
 import java.util.Iterator;
+import java.util.NoSuchElementException;
 
 /**
  * Utility class to construct and parse byte arrays using the TLV format -
@@ -464,6 +465,10 @@ public class TlvBufferUtils {
 
                 @Override
                 public TlvElement next() {
+                    if (!hasNext()) {
+                        throw new NoSuchElementException();
+                    }
+
                     int type = 0;
                     if (mTypeSize == 1) {
                         type = mArray[mOffset];