Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7ab0b19 authored by Hefty, Sean's avatar Hefty, Sean Committed by Roland Dreier
Browse files

IB/mad: Verify mgmt class in received MADs



If a received MAD contains an invalid or reserved mgmt class, we will
attempt to access method_table outside of its range.  Add a check to
ensure that mgmt class falls within the handled range.

Found by code inspection.

Signed-off-by: default avatarSean Hefty <sean.hefty@intel.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent f45ee80e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1596,6 +1596,9 @@ find_mad_agent(struct ib_mad_port_private *port_priv,
					mad->mad_hdr.class_version].class;
			if (!class)
				goto out;
			if (convert_mgmt_class(mad->mad_hdr.mgmt_class) >=
			    IB_MGMT_MAX_METHODS)
				goto out;
			method = class->method_table[convert_mgmt_class(
							mad->mad_hdr.mgmt_class)];
			if (method)