diff --git a/display/composer/v1_0/display_command/display_cmd_responser.h b/display/composer/v1_0/display_command/display_cmd_responser.h index 91e5b28c35527efa40d890dfd434f0bfa80ff4f0..92457598d1af4eac0a417e43db6fed62c5fcbfa3 100755 --- a/display/composer/v1_0/display_command/display_cmd_responser.h +++ b/display/composer/v1_0/display_command/display_cmd_responser.h @@ -158,8 +158,8 @@ public: int32_t CmdRequest(uint32_t inEleCnt, const std::vector& inFds, uint32_t& outEleCnt, std::vector& outFds) { - if (inEleCnt > CmdUtils::MAX_ELE_COUNT) { - HDF_LOGE("%{public}s: inEleCnt:%{public}u is too large", __func__, inEleCnt); + if (inEleCnt > CmdUtils::MAX_ELE_COUNT || inEleCnt == CmdUtils::ZERO_ELE_COUNT) { + HDF_LOGE("%{public}s: inEleCnt:%{public}u is invalid", __func__, inEleCnt); return HDF_FAILURE; } std::shared_ptr requestData(new char[inEleCnt * CmdUtils::ELEMENT_SIZE], std::default_delete()); diff --git a/display/composer/v1_0/display_command/display_cmd_utils.h b/display/composer/v1_0/display_command/display_cmd_utils.h index db512bbb48a66c9fc093056fd19ce2af7355bce7..ba1557049593a70ab6791e2b4e01a9639dbff11e 100644 --- a/display/composer/v1_0/display_command/display_cmd_utils.h +++ b/display/composer/v1_0/display_command/display_cmd_utils.h @@ -43,6 +43,7 @@ public: static constexpr uint32_t INIT_ELEMENT_COUNT = 32 * 1024; static constexpr uint32_t MAX_MEMORY = 10485760; // 10M static constexpr uint32_t MAX_ELE_COUNT = 100000; + static constexpr uint32_t ZERO_ELE_COUNT = 0; #define SWITCHCASE(x) case (x): {return #x;} static const char *CommandToString(int32_t cmdId)