[ofa-general] [PATCH] osm: ignore line with invalid guid in guid2lid file

Yevgeny Kliteynik kliteyn at dev.mellanox.co.il
Tue Apr 17 07:43:10 PDT 2007


Hi Hal,

When parsing guid2lid file, invalid guid string
ended up unpacked as guid 0x0. Ignoring line with
invalid guid string.

This bug doesn't look too important - don't think
that it should go to ofed_1_2. Anyway, your call.

-- Yevgeny

Signed-off-by: Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
---
 osm/opensm/osm_db_files.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/osm/opensm/osm_db_files.c b/osm/opensm/osm_db_files.c
index dbadd68..23eaa0b 100644
--- a/osm/opensm/osm_db_files.c
+++ b/osm/opensm/osm_db_files.c
@@ -294,6 +294,7 @@ osm_db_restore(
   char                *p_first_word, *p_rest_of_line, *p_last;
   char                *p_key = NULL;
   char                *p_prev_val, *p_accum_val = NULL;
+  char                *endptr = NULL;
   unsigned int         line_num;
 
   OSM_LOG_ENTER( p_log, osm_db_restore );
@@ -415,12 +416,20 @@ osm_db_restore(
           p_prev_val = NULL;
         }
 
-        /* store our key and value */
-        st_insert(p_domain_imp->p_hash,
-                  (st_data_t)p_key, (st_data_t)p_accum_val);
         osm_log( p_log, OSM_LOG_DEBUG,
                  "osm_db_restore: "
                  "Got key:%s value:%s\n", p_key, p_accum_val);
+
+        /* check that the key is a number */
+        if (!strtouq(p_key,&endptr,0) && *endptr != '\0')
+          osm_log( p_log, OSM_LOG_ERROR,
+                   "osm_db_restore: ERR 610B: "
+                   "Key:%s is invalid\n",
+                   p_key);
+        else
+          /* store our key and value */
+          st_insert(p_domain_imp->p_hash,
+                    (st_data_t)p_key, (st_data_t)p_accum_val);
       }
       else
       {
-- 
1.4.4.1.GIT





More information about the general mailing list