From: Ira Weiny <wei...@llnl.gov> Date: Thu, 14 May 2009 15:52:42 -0700 Subject: [PATCH] iblinkinfo, ibqueryerrors: prevent core when switch is not found
If the switch is not found print nice error message instead of seg faulting Signed-off-by: Ira Weiny <wei...@llnl.gov> --- infiniband-diags/src/iblinkinfo.c | 11 +++++++++-- infiniband-diags/src/ibqueryerrors.c | 10 ++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/infiniband-diags/src/iblinkinfo.c b/infiniband-diags/src/iblinkinfo.c index cf38ecb..367056c 100644 --- a/infiniband-diags/src/iblinkinfo.c +++ b/infiniband-diags/src/iblinkinfo.c @@ -395,11 +395,18 @@ main(int argc, char **argv) goto close_port; } - if (guid) { + if (guid_str) { ibnd_node_t *sw = ibnd_find_node_guid(fabric, guid); - print_switch(sw, NULL); + if (sw) + print_switch(sw, NULL); + else + fprintf(stderr, "Failed to find switch: %s\n", guid_str); } else if (dr_path) { ibnd_node_t *sw = ibnd_find_node_dr(fabric, dr_path); + if (sw) + print_switch(sw, NULL); + else + fprintf(stderr, "Failed to find switch: %s\n", dr_path); print_switch(sw, NULL); } else { ibnd_iter_nodes_type(fabric, print_switch, IB_NODE_SWITCH, NULL); diff --git a/infiniband-diags/src/ibqueryerrors.c b/infiniband-diags/src/ibqueryerrors.c index 525af70..999329e 100644 --- a/infiniband-diags/src/ibqueryerrors.c +++ b/infiniband-diags/src/ibqueryerrors.c @@ -445,10 +445,16 @@ main(int argc, char **argv) if (switch_guid) { ibnd_node_t *node = ibnd_find_node_guid(fabric, switch_guid); - print_node(node, NULL); + if (node) + print_node(node, NULL); + else + fprintf(stderr, "Failed to find node: %s\n", switch_guid_str); } else if (dr_path) { ibnd_node_t *node = ibnd_find_node_dr(fabric, dr_path); - print_node(node, NULL); + if (node) + print_node(node, NULL); + else + fprintf(stderr, "Failed to find node: %s\n", dr_path); } else ibnd_iter_nodes(fabric, print_node, NULL); -- 1.5.4.5 _______________________________________________ general mailing list general@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general