From d1c3e86f2368ec69098a4e786a5c4e9d2455ae1d Mon Sep 17 00:00:00 2001 From: Patrick Venture Date: Thu, 10 Jan 2019 13:12:20 -0800 Subject: bugfix: process: can be only crc The read command, if returning 0 bytes of data, does return the CRC. Tested: Verified via a client implementation that it now behaves as expected on returning 0 bytes from a read (returns only the CRC). Change-Id: I84200c0fbe8400cc9234b55991fee750cb84faa2 Signed-off-by: Patrick Venture --- process.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'process.cpp') diff --git a/process.cpp b/process.cpp index 683bf77..a73f70e 100644 --- a/process.cpp +++ b/process.cpp @@ -128,8 +128,10 @@ ipmi_ret_t processBlobCommand(IpmiBlobHandler cmd, ManagerInterface* mgr, return result; } - /* The response, if it has one byte, has three, to include the crc16. */ - if (replyLength < (sizeof(uint16_t) + 1)) + /* Read can return 0 bytes, and just a CRC, otherwise you need a CRC and 1 + * byte, therefore the limit is 2 bytes. + */ + if (replyLength < (sizeof(uint16_t))) { return IPMI_CC_UNSPECIFIED_ERROR; } -- cgit v1.2.3