From 2e72d19bc68dbbe2eb26f96983a0f6ed7552c7e6 Mon Sep 17 00:00:00 2001 From: Paul Colta Date: Wed, 5 Feb 2025 10:31:57 -0800 Subject: HDMI: Invalidate physical address 0xFFFF Bug: 377497593 Test: atest com.android.server.hdmi Flag: EXEMPT bugfix Change-Id: I36e370977435af764f7152b0a1c3d13719f3ad60 --- .../core/java/com/android/server/hdmi/HdmiCecMessageValidator.java | 3 +++ .../src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java | 1 + 2 files changed, 4 insertions(+) diff --git a/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java b/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java index 310f592ddf5c..b298d1c2ac66 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecMessageValidator.java @@ -390,6 +390,9 @@ public class HdmiCecMessageValidator { private static boolean isValidPhysicalAddress(byte[] params, int offset) { int physicalAddress = HdmiUtils.twoBytesToInt(params, offset); + if (physicalAddress == 0xFFFF) { + return false; + } while (physicalAddress != 0) { int maskedAddress = physicalAddress & 0xF000; physicalAddress = (physicalAddress << 4) & 0xFFFF; diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java index 587f4370636c..108cd67b3316 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecMessageValidatorTest.java @@ -627,6 +627,7 @@ public class HdmiCecMessageValidatorTest { assertMessageValidity("4F:81:13:05").isEqualTo(ERROR_PARAMETER); assertMessageValidity("4F:86:10:14").isEqualTo(ERROR_PARAMETER); assertMessageValidity("0F:86:10:24").isEqualTo(ERROR_PARAMETER); + assertMessageValidity("8F:86:FF:FF").isEqualTo(ERROR_PARAMETER); } @Test -- cgit v1.2.3-59-g8ed1b