Hal Rosenstock wrote:
On Wed, 2007-04-18 at 02:05, Yevgeny Kliteynik wrote:
Sasha Khapyorsky wrote:
On 17:43 Tue 17 Apr , Yevgeny Kliteynik wrote:
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.
It looks like a safe change for me.
BTW any reason to use strtouq() instead of more popular (IMHO) strtoul()
or strtoull()?
No particular reason.
It specifically says that the function "convert string to an unsigned
64-bit integer" instead of unsigned long or unsigned long long, but
on the other hand it doesn't matter, because uint64_t is a typedef anyway.
If you have special sentiments about strtoul/strtoull - feel free to change it.
Is strtouq supported in Windows ?
Good point.
I didn't see strtouq mentioned in MSDN - it has __strtoui64 that does the same
job.
I don't have the Windows machine to try and compile strtouq right now, but I
think
that we should stick to strtoul as Sasha has suggested - I found it in the
MSDN, so
it would work for sure.
Hal,
Can you change it as you apply the patch, or do you want me to issue a new one?
-- Yevgeny
-- Hal
-- Yevgeny
Sasha
-- Yevgeny
Signed-off-by: Yevgeny Kliteynik <[EMAIL PROTECTED]>
---
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
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit
http://openib.org/mailman/listinfo/openib-general
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general