From 44ca8b2554671b3cd5f4adb8f16f4d620b9fe35f Mon Sep 17 00:00:00 2001 From: Adam Shih Date: Mon, 27 Mar 2023 11:37:45 +0800 Subject: [PATCH] comply with VTS requirements Bug: 275036679 Bug: 275034315 Test: atest VtsHalDumpstateTargetTest:PerInstanceAndMode/DumpstateAidlPerModeTest#TestOk/0_android_hardware_dumpstate_IDumpstateDevice_default_FULL atest VtsHalDumpstateTargetTest:PerInstance/DumpstateAidlGeneralTest#TestInvalidModeArgument_Negative/0_android_hardware_dumpstate_IDumpstateDevice_default Change-Id: I734325c39c66dc536de42fb9d77631ccd1016c84 --- dumpstate/Dumpstate.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dumpstate/Dumpstate.cpp b/dumpstate/Dumpstate.cpp index 8ffb682f..b151a873 100644 --- a/dumpstate/Dumpstate.cpp +++ b/dumpstate/Dumpstate.cpp @@ -534,7 +534,10 @@ ndk::ScopedAStatus Dumpstate::dumpstateBoard(const std::vector<::ndk::ScopedFile ATRACE_BEGIN("dumpstateBoard"); // Unused arguments. (void) in_timeoutMillis; - (void) in_mode; + if (in_mode < IDumpstateDevice::DumpstateMode::FULL || in_mode > IDumpstateDevice::DumpstateMode::PROTO) { + ALOGE("Invalid mode: %d\n", in_mode); + return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, "Invalid mode"); + } if (in_fds.size() < 1) { ALOGE("no FDs\n"); @@ -551,6 +554,7 @@ ndk::ScopedAStatus Dumpstate::dumpstateBoard(const std::vector<::ndk::ScopedFile if (in_fds.size() < 2) { ALOGE("no FD for dumpstate_board binary\n"); + dumpTextSection(fd, ""); } else { int fd_bin = in_fds[1].get(); dumpLogSection(fd, fd_bin);