Merge "Remove [email protected] from OWNERS" into main am: b1d1233026

Original change: https://android-review.googlesource.com/c/platform/frameworks/libs/modules-utils/+/3162927

Change-Id: I0dc658180917baafdd11b9647060f3e4b46cff5a
Signed-off-by: Automerger Merge Worker <[email protected]>
diff --git a/build/include/android-modules-utils/sdk_level.h b/build/include/android-modules-utils/sdk_level.h
index 473fac8..f35c09e 100644
--- a/build/include/android-modules-utils/sdk_level.h
+++ b/build/include/android-modules-utils/sdk_level.h
@@ -58,8 +58,9 @@
 
 // Checks if the device is running on release version of Android V or newer.
 inline bool IsAtLeastV() {
-  return android_get_device_api_level() >= 34 &&
-         detail::IsAtLeastPreReleaseCodename("VanillaIceCream");
+  return android_get_device_api_level() >= 35 ||
+         (android_get_device_api_level() == 34 &&
+          detail::IsAtLeastPreReleaseCodename("VanillaIceCream"));
 }
 
 } // namespace sdklevel
diff --git a/java/com/android/modules/utils/BinaryXmlSerializer.java b/java/com/android/modules/utils/BinaryXmlSerializer.java
index 7c0217e..9fdb818 100644
--- a/java/com/android/modules/utils/BinaryXmlSerializer.java
+++ b/java/com/android/modules/utils/BinaryXmlSerializer.java
@@ -16,6 +16,8 @@
 
 package com.android.modules.utils;
 
+import static com.android.modules.utils.FastDataOutput.MAX_UNSIGNED_SHORT;
+
 import static org.xmlpull.v1.XmlPullParser.CDSECT;
 import static org.xmlpull.v1.XmlPullParser.COMMENT;
 import static org.xmlpull.v1.XmlPullParser.DOCDECL;
@@ -224,6 +226,10 @@
         if (namespace != null && !namespace.isEmpty()) throw illegalNamespace();
         mOut.writeByte(ATTRIBUTE | TYPE_BYTES_HEX);
         mOut.writeInternedUTF(name);
+        if (value.length > MAX_UNSIGNED_SHORT) {
+            throw new IOException("attributeBytesHex: input size (" + value.length
+                    + ") exceeds maximum allowed size (" + MAX_UNSIGNED_SHORT + ")");
+        }
         mOut.writeShort(value.length);
         mOut.write(value);
         return this;
@@ -235,6 +241,10 @@
         if (namespace != null && !namespace.isEmpty()) throw illegalNamespace();
         mOut.writeByte(ATTRIBUTE | TYPE_BYTES_BASE64);
         mOut.writeInternedUTF(name);
+        if (value.length > MAX_UNSIGNED_SHORT) {
+            throw new IOException("attributeBytesBase64: input size (" + value.length
+                    + ") exceeds maximum allowed size (" + MAX_UNSIGNED_SHORT + ")");
+        }
         mOut.writeShort(value.length);
         mOut.write(value);
         return this;
diff --git a/java/com/android/modules/utils/build/SdkLevel.java b/java/com/android/modules/utils/build/SdkLevel.java
index 42a1e4f..4b811b1 100644
--- a/java/com/android/modules/utils/build/SdkLevel.java
+++ b/java/com/android/modules/utils/build/SdkLevel.java
@@ -64,10 +64,11 @@
                 (SDK_INT == 33 && isAtLeastPreReleaseCodename("UpsideDownCake"));
     }
 
-    /** Checks if the device is running on a pre-release version of Android V or newer */
-    @ChecksSdkIntAtLeast(codename = "VanillaIceCream")
+    /** Checks if the device is running on a release version of Android VanillaIceCream or newer */
+    @ChecksSdkIntAtLeast(api = 35 /* BUILD_VERSION_CODES.VanillaIceCream */)
     public static boolean isAtLeastV() {
-        return SDK_INT >= 34 && isAtLeastPreReleaseCodename("VanillaIceCream");
+        return SDK_INT >= 35 ||
+                (SDK_INT == 34 && isAtLeastPreReleaseCodename("VanillaIceCream"));
     }
 
     private static boolean isAtLeastPreReleaseCodename(@NonNull String codename) {