@@ -1419,8 +1419,9 @@ void osm_perfmgr_dump_counters(osm_perfmgr_t * pm, perfmgr_db_dump_t dump_type)
*******************************************************************/
void osm_perfmgr_print_counters(osm_perfmgr_t * pm, char *nodename, FILE * fp)
{
- uint64_t guid = strtoull(nodename, NULL, 0);
- if (guid == 0 && errno)
+ char *end = NULL;
+ uint64_t guid = strtoull(nodename, &end, 0);
+ if (nodename + strlen(nodename) != end)
perfmgr_db_print_by_name(pm->db, nodename, fp);
else
perfmgr_db_print_by_guid(pm->db, guid, fp);
Subject: [PATCH] opensm: fix strtoull error handling The man page states that errno _may_ be returned when the string can not be converted. Check that the entire string was consumed otherwise assume this is not a guid. Signed-off-by: Ira Weiny <weiny2@llnl.gov> --- opensm/osm_perfmgr.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)