Master Write-Read: Validate reserved field content
In "Master Write-Read Command" byte-2’s zero'th bit is reserved.
So return "InvalidFieldRequest" when reserved content is non-zero.
Tested:
IPMI Command: Master Write-Read Command
Command: ipmitool raw 0x06 0x52 0x0e 0xa1 0xff 0x1
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
cmd=0x52 rsp=0xcc): Invalid data field in request
Command: ipmitool raw 0x06 0x52 0x0e 0xa0 0xb 0x1
Response: 00 00 00 01 0d 00 f1 01 0c 19 e1
Signed-off-by: Jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
Change-Id: I1f9fb688642f1096385e4263a4648c7233e5de85
diff --git a/apphandler.cpp b/apphandler.cpp
index 6f8b2f0..5e67587 100644
--- a/apphandler.cpp
+++ b/apphandler.cpp
@@ -1631,6 +1631,10 @@
bool reserved, uint7_t slaveAddr, uint8_t readCount,
std::vector<uint8_t> writeData)
{
+ if (reserved)
+ {
+ return ipmi::responseInvalidFieldRequest();
+ }
if (readCount > maxIPMIWriteReadSize)
{
log<level::ERR>("Master write read command: Read count exceeds limit");