Commit 2fe2f378 authored by Bart Van Assche's avatar Bart Van Assche Committed by Doug Ledford

IB/mad: Fix an array index check

The array ib_mad_mgmt_class_table.method_table has MAX_MGMT_CLASS
(80) elements. Hence compare the array index with that value instead
of with IB_MGMT_MAX_METHODS (128). This patch avoids that Coverity
reports the following:

Overrunning array class->method_table of 80 8-byte elements at element index 127 (byte offset 1016) using index convert_mgmt_class(mad_hdr->mgmt_class) (which evaluates to 127).

Fixes: commit b7ab0b19 ("IB/mad: Verify mgmt class in received MADs")
Signed-off-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Cc: Sean Hefty <sean.hefty@intel.com>
Cc: <stable@vger.kernel.org>
Reviewed-by: default avatarHal Rosenstock <hal@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 0d38c240
...@@ -1746,7 +1746,7 @@ find_mad_agent(struct ib_mad_port_private *port_priv, ...@@ -1746,7 +1746,7 @@ find_mad_agent(struct ib_mad_port_private *port_priv,
if (!class) if (!class)
goto out; goto out;
if (convert_mgmt_class(mad_hdr->mgmt_class) >= if (convert_mgmt_class(mad_hdr->mgmt_class) >=
IB_MGMT_MAX_METHODS) ARRAY_SIZE(class->method_table))
goto out; goto out;
method = class->method_table[convert_mgmt_class( method = class->method_table[convert_mgmt_class(
mad_hdr->mgmt_class)]; mad_hdr->mgmt_class)];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment