OSDN Git Service

[NAN] Fix assumption about Strings containing single-byte characters.
authorEtan Cohen <etancohen@google.com>
Tue, 28 Jun 2016 00:25:29 +0000 (17:25 -0700)
committerEtan Cohen <etancohen@google.com>
Wed, 6 Jul 2016 20:07:31 +0000 (13:07 -0700)
Code assumed that each character was represented by a single byte.

Change-Id: I92ea63f7273379ed1035f10c207d41e3e352bf38

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

index d7cba8f..8295484 100644 (file)
@@ -380,8 +380,8 @@ public class PublishConfig implements Parcelable {
          *         {@code builder.setXXX(..).setXXX(..)}.
          */
         public Builder setServiceSpecificInfo(@NonNull String serviceSpecificInfoStr) {
-            mServiceSpecificInfoLength = serviceSpecificInfoStr.length();
             mServiceSpecificInfo = serviceSpecificInfoStr.getBytes();
+            mServiceSpecificInfoLength = mServiceSpecificInfo.length;
             return this;
         }
 
index 847c8d0..6ef4dfa 100644 (file)
@@ -413,8 +413,8 @@ public class SubscribeConfig implements Parcelable {
          *         {@code builder.setXXX(..).setXXX(..)}.
          */
         public Builder setServiceSpecificInfo(@NonNull String serviceSpecificInfoStr) {
-            mServiceSpecificInfoLength = serviceSpecificInfoStr.length();
             mServiceSpecificInfo = serviceSpecificInfoStr.getBytes();
+            mServiceSpecificInfoLength = mServiceSpecificInfo.length;
             return this;
         }
 
index ea8785a..fa1dcf1 100644 (file)
@@ -224,7 +224,8 @@ public class TlvBufferUtils {
          *         {@code ctr.putXXX(..).putXXX(..)}.
          */
         public TlvConstructor putString(int type, String data) {
-            return putByteArray(type, data.getBytes(), 0, data.length());
+            byte[] bytes = data.getBytes();
+            return putByteArray(type, bytes, 0, bytes.length);
         }
 
         /**