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 <wei...@llnl.gov>
---
 opensm/osm_perfmgr.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/opensm/osm_perfmgr.c b/opensm/osm_perfmgr.c
index 3e1575a..1cbbb71 100644
--- a/opensm/osm_perfmgr.c
+++ b/opensm/osm_perfmgr.c
@@ -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);
-- 
1.7.1

--
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

Reply via email to