From 8c959cde947879cbbe3b18b6f148ceceed95eb7b Mon Sep 17 00:00:00 2001 From: Ling Ma Date: Wed, 2 Mar 2022 14:09:12 -0800 Subject: [PATCH] setProperty check for byte limit Test: manual Bug: 210502588 Change-Id: I75a1e5bbd79814429dfac5b0b6449efd72176c2c --- core/java/android/os/SystemProperties.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/java/android/os/SystemProperties.java b/core/java/android/os/SystemProperties.java index 82d4443ea7245..aa283a2d019bd 100644 --- a/core/java/android/os/SystemProperties.java +++ b/core/java/android/os/SystemProperties.java @@ -226,9 +226,10 @@ public class SystemProperties { */ @UnsupportedAppUsage public static void set(@NonNull String key, @Nullable String val) { - if (val != null && !key.startsWith("ro.") && val.length() > PROP_VALUE_MAX) { + if (val != null && !key.startsWith("ro.") && val.getBytes(StandardCharsets.UTF_8).length + > PROP_VALUE_MAX) { throw new IllegalArgumentException("value of system property '" + key - + "' is longer than " + PROP_VALUE_MAX + " characters: " + val); + + "' is longer than " + PROP_VALUE_MAX + " bytes: " + val); } if (TRACK_KEY_ACCESS) onKeyAccess(key); native_set(key, val);