Fix: Return error for invalid privileges

Return error code 0xCC for invalid privileges requested
in SetChannelAccess command.

Unit-Test:
1. Verified 0xCC is returned for command (reserved privilege)
ipmitool raw 0x6 0x40 0x1 0x82 0x80

Change-Id: I3ea1ee6e02019ef0ae5f812e7d5dd999d710e4e7
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
diff --git a/user_channel/channel_mgmt.cpp b/user_channel/channel_mgmt.cpp
index 310ac2b..574b058 100644
--- a/user_channel/channel_mgmt.cpp
+++ b/user_channel/channel_mgmt.cpp
@@ -487,10 +487,12 @@
         return IPMI_CC_ACTION_NOT_SUPPORTED_FOR_CHANNEL;
     }
 
-    if ((setFlag & setAccessMode) &&
-        (!isValidAccessMode(chAccessData.accessMode)))
+    if (((setFlag & setAccessMode) &&
+         (!isValidAccessMode(chAccessData.accessMode))) ||
+        ((setFlag & setPrivLimit) &&
+         (!isValidPrivLimit(chAccessData.privLimit))))
     {
-        log<level::DEBUG>("Invalid access mode specified");
+        log<level::DEBUG>("Invalid access mode / privilege limit specified");
         return IPMI_CC_INVALID_FIELD_REQUEST;
     }
 
@@ -582,10 +584,12 @@
         return IPMI_CC_ACTION_NOT_SUPPORTED_FOR_CHANNEL;
     }
 
-    if ((setFlag & setAccessMode) &&
-        (!isValidAccessMode(chAccessData.accessMode)))
+    if (((setFlag & setAccessMode) &&
+         (!isValidAccessMode(chAccessData.accessMode))) ||
+        ((setFlag & setPrivLimit) &&
+         (!isValidPrivLimit(chAccessData.privLimit))))
     {
-        log<level::DEBUG>("Invalid access mode specified");
+        log<level::DEBUG>("Invalid access mode / privilege limit specified");
         return IPMI_CC_INVALID_FIELD_REQUEST;
     }