osm_sa_mcmember_record.c: Extend P_Pkey validation on MCMemberRecord(Join)
PATCH 1/1 osm_sa_mcmember_record.c: Extend P_Pkey validation on MCMemberRecord(Join)
From: Daniel Klein <danielk-VPRAkNaXOzVWk0Htik3J/[email protected]>
Verify that a port that joins a multicast group is in the partition for that MC group.
--- opensm/osm_sa_mcmember_record.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-)
opensm/osm_sa_mcmember_record.c +18 -0
@@ -1197,6 +1197,24 @@ static void mcmr_rcv_join_mgrp(IN osm_sa_t * sa, IN osm_madw_t * p_madw) goto Exit; } +/* verify that the joining port is in the partition of the group */ +if (!osm_physp_has_pkey (sa->p_log, p_mgrp->mcmember_rec.pkey, p_physp)) { +char gid_str[INET6_ADDRSTRLEN ]; +if (is_new_group) +osm_mgrp_cleanup (sa->p_subn, p_mgrp); +CL_PLOCK_RELEASE (sa->p_lock); +memset (gid_str,0 ,sizeof (gid_str)); +OSM_LOG (sa->p_log,OSM_LOG_ERROR ,"ERR 1B14: " +"Cannot join port 0x%016" PRIx64" to MGID %s - " +"Port is not in partition of this MC group\n" , +cl_ntoh64 (portguid), +inet_ntop (AF_INET6 , + p_mgrp->mcmember_rec.mgid.raw, + gid_str,sizeof (gid_str))); +osm_sa_send_error (sa, p_madw,IB_SA_MAD_STATUS_REQ_INVALID ); + goto Exit; + } +/* * o15-0.2.1 requires validation of the requesting port * in the case of modification:
Signature · 6 lines
1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html