usercommands: Validate reserved field content zero

In Set User Password command, byte-1's[6] and byte-2's[7:2] are
reserved.
Return InvalidFieldRequest when reserved content is non-zero.

Tested:
Case-1:
Command : ipmitool raw 0x06 0x47 0xc2 0x19 0x85 0xc6 0xa2 0x17 0x0f
          0x37 0xa5 0xf6 0xa2 0x81 0xfb 0x5b 0xb4 0x57 0x08 0x69 0xa6
          0xe7 0x91 0x82
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x47 rsp=0xcc): Invalid data field in request
Case-2:
Command : ipmitool raw 0x06 0x47 0x01 0x58 0x3c 0x11 0xce 0xa2 0xb9
          0xd8 0x85 0x16 0x82 0x29 0x95 0xd2 0xe7 0xe0 0x47 0xb6 0x9d
          0xbd 0xf2 0xb0
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x47 rsp=0xcc): Invalid data field in request
Case-3:
Command : ipmitool raw 0x06 0x47 0xd2 0x02 0x85 0xc6 0xa2 0x17 0x0f
          0x37 0xa5 0xf6 0xa2 0x81 0xfb 0x5b 0xb4 0x57 0x08 0x69 0xa6
          0xe7 0x91 0x82
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x47 rsp=0xcc): Invalid data field in request

Signed-off-by: Snehalatha Venkatesh <snehalathax.v@intel.com>
Change-Id: I08f63dd4c69ec62e4ac9ce9a3a298a62851e567b
diff --git a/user_channel/usercommands.cpp b/user_channel/usercommands.cpp
index 622857c..9a23ac3 100644
--- a/user_channel/usercommands.cpp
+++ b/user_channel/usercommands.cpp
@@ -359,6 +359,11 @@
     // subtract 2 bytes header to know the password length - including NULL
     uint8_t passwordLength = *dataLen - 2;
     *dataLen = 0;
+    if (req->reserved1 || req->reserved2)
+    {
+        log<level::DEBUG>("Invalid data field in request");
+        return ccInvalidFieldRequest;
+    }
 
     // verify input length based on operation. Required password size is 20
     // bytes as  we support only IPMI 2.0, but in order to be compatible with