Re: [PATCH] opensm/osm_trap_rcv.c: fix possible core dump
On 17:53 Tue 07 Sep , Yevgeny Kliteynik wrote: Handle the case when source physical port for trap 145 wasn't found. Signed-off-by: Yevgeny Kliteynik klit...@dev.mellanox.co.il Applied. Thanks. Sasha -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] opensm/osm_trap_rcv.c: fix possible core dump
On 07-Sep-10 10:58 PM, Sasha Khapyorsky wrote: On 17:53 Tue 07 Sep , Yevgeny Kliteynik wrote: Handle the case when source physical port for trap 145 wasn't found. Signed-off-by: Yevgeny Kliteynikklit...@dev.mellanox.co.il --- opensm/opensm/osm_trap_rcv.c | 14 ++ 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/opensm/opensm/osm_trap_rcv.c b/opensm/opensm/osm_trap_rcv.c index 500632c..9f39644 100644 --- a/opensm/opensm/osm_trap_rcv.c +++ b/opensm/opensm/osm_trap_rcv.c @@ -510,10 +510,16 @@ static void trap_rcv_process_request(IN osm_sm_t * sm, ERR 3812: No physical port found for trap 144: \node description update\\n); goto check_sweep; -} else if (cl_ntoh16(p_ntci-g_or_v.generic.trap_num) == 145) -/* this assumes that trap 145 content is not broken? */ -p_physp-p_node-node_info.sys_guid = -p_ntci-data_details.ntc_145.new_sys_guid; +} else if (cl_ntoh16(p_ntci-g_or_v.generic.trap_num) == 145) { +if (p_physp) +/* this assumes that trap 145 content is not broken? */ +p_physp-p_node-node_info.sys_guid = +p_ntci-data_details.ntc_145.new_sys_guid; +else +OSM_LOG(sm-p_log, OSM_LOG_ERROR, +ERR 3813: No physical port found for +trap 145: \SystemImageGUID update\\n); +} Wouldn't it be better to make such check for all traps and not separately for selected values? Such check exists: 407 if (p_physp) 408 p_smp-m_key = p_physp-port_info.m_key; 409 else 410 OSM_LOG(sm-p_log, OSM_LOG_ERROR, ERR 3809: 411 Failed to find source physical port for trap\n); However, even if p_physp wasn't found, the function continues, and for each trap it is doing something else. For instance, p_physp can be absent, but trap 144 will still cause heavy sweep. -- Yevgeny Sasha check_sweep: /* do a sweep if we received a trap */ -- 1.6.2.4 -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] opensm/osm_trap_rcv.c: fix possible core dump
On 17:53 Tue 07 Sep , Yevgeny Kliteynik wrote: Handle the case when source physical port for trap 145 wasn't found. Signed-off-by: Yevgeny Kliteynik klit...@dev.mellanox.co.il --- opensm/opensm/osm_trap_rcv.c | 14 ++ 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/opensm/opensm/osm_trap_rcv.c b/opensm/opensm/osm_trap_rcv.c index 500632c..9f39644 100644 --- a/opensm/opensm/osm_trap_rcv.c +++ b/opensm/opensm/osm_trap_rcv.c @@ -510,10 +510,16 @@ static void trap_rcv_process_request(IN osm_sm_t * sm, ERR 3812: No physical port found for trap 144: \node description update\\n); goto check_sweep; - } else if (cl_ntoh16(p_ntci-g_or_v.generic.trap_num) == 145) - /* this assumes that trap 145 content is not broken? */ - p_physp-p_node-node_info.sys_guid = - p_ntci-data_details.ntc_145.new_sys_guid; + } else if (cl_ntoh16(p_ntci-g_or_v.generic.trap_num) == 145) { + if (p_physp) + /* this assumes that trap 145 content is not broken? */ + p_physp-p_node-node_info.sys_guid = + p_ntci-data_details.ntc_145.new_sys_guid; + else + OSM_LOG(sm-p_log, OSM_LOG_ERROR, + ERR 3813: No physical port found for + trap 145: \SystemImageGUID update\\n); + } Wouldn't it be better to make such check for all traps and not separately for selected values? Sasha check_sweep: /* do a sweep if we received a trap */ -- 1.6.2.4 -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html