diff mbox

opensm: fix strtoull error handling

Message ID 20110415151922.cd760149.weiny2@llnl.gov (mailing list archive)
State Accepted
Delegated to: Alex Netes
Headers show

Commit Message

Ira Weiny April 15, 2011, 10:19 p.m. UTC
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(-)
diff mbox

Patch

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