summaryrefslogtreecommitdiffstats
path: root/user_channel/channel_mgmt.cpp
diff options
context:
space:
mode:
authorRichard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>2019-01-29 10:56:57 +0530
committerTom Joseph <tomjoseph@in.ibm.com>2019-02-02 04:26:22 +0000
commit93411602ec4fd2a369d127f1d44c149c2c9c7e04 (patch)
tree3056d5c07a3eeaccafd31e97e5c288a53e295587 /user_channel/channel_mgmt.cpp
parentb6771e0f58cf4272055f0dc6c4aa2cfdd096c8ce (diff)
downloadphosphor-host-ipmid-93411602ec4fd2a369d127f1d44c149c2c9c7e04.tar.gz
phosphor-host-ipmid-93411602ec4fd2a369d127f1d44c149c2c9c7e04.zip
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>
Diffstat (limited to 'user_channel/channel_mgmt.cpp')
-rw-r--r--user_channel/channel_mgmt.cpp16
1 files changed, 10 insertions, 6 deletions
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 @@ ipmi_ret_t
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 @@ ipmi_ret_t ChannelConfig::setChannelAccessPersistData(
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;
}
OpenPOWER on IntegriCloud