more checking for malformed ndef records.
Nick Kralevich [Fri, 10 Jun 2011 22:18:28 +0000 (15:18 -0700)]
Change-Id: I0a788405b668ef76368fb746ca46d71da387beea

src/com/android/apps/tag/record/TextRecord.java
src/com/android/apps/tag/record/UriRecord.java

index 6ea4e80..519c221 100644 (file)
@@ -111,6 +111,7 @@ public class TextRecord extends ParsedNdefRecord {
         try {
 
             byte[] payload = record.getPayload();
+            Preconditions.checkArgument(payload.length > 0);
 
             /*
              * payload[0] contains the "Status Byte Encodings" field, per
index f253c82..cf0f23d 100644 (file)
@@ -223,6 +223,7 @@ public class UriRecord extends ParsedNdefRecord implements OnClickListener {
         Preconditions.checkArgument(Arrays.equals(record.getType(), NdefRecord.RTD_URI));
 
         byte[] payload = record.getPayload();
+        Preconditions.checkArgument(payload.length > 0);
 
         /*
          * payload[0] contains the URI Identifier Code, per the
@@ -233,6 +234,8 @@ public class UriRecord extends ParsedNdefRecord implements OnClickListener {
          */
 
         String prefix = URI_PREFIX_MAP.get(payload[0]);
+        Preconditions.checkArgument(prefix != null);
+
         byte[] fullUri = Bytes.concat(
                 prefix.getBytes(Charset.forName("UTF-8")),
                 Arrays.copyOfRange(payload, 1, payload.length));