Hi Sasha, 

I agree. Your check is best. 

Thanks.
Pat

Sorry if this is a duplicate I got a bounce earlier today.


>>> Sasha Khapyorsky <[EMAIL PROTECTED]> 07/12/06 6:45 PM >>>
Hi Pat,

On 15:14 Tue 11 Jul     , Patrick Mullaney wrote:
> This will avoid an invalid warning about service level value if sl=0
is
> used in the partition config file.

Yes, this is wrong warning, but original goal of this check was to catch
non-numeric string. Think something like this may be better:


diff --git a/osm/opensm/osm_prtn_config.c b/osm/opensm/osm_prtn_config.c
index bd15513..5647ca8 100644
--- a/osm/opensm/osm_prtn_config.c
+++ b/osm/opensm/osm_prtn_config.c
@@ -150,7 +150,9 @@ static int partition_add_flag(unsigned l
                                " - skipped.\n");
        } else if (!strncmp(flag, "sl", len)) {
                unsigned sl;
-               if (!val || (sl = strtoul(val, NULL, 0)) == 0 || sl >
15)
+               char *end;
+               if (!val || !*val || (sl = strtoul(val, &end, 0)) > 15
||
+                   (*end && !isspace(*end)))
                        PARSEWARN(conf->p_log, lineno,
                                "flag \'sl\' requires valid value"
                                " - skipped.\n");


The overflow case should be filtered by sl > 15 check.

Sasha

> Can you include something like it in
> your original patch?
> 
> Thanks.
> Pat
> 
>
--------------------------------------------------------------------------------------------------
> 
> --- opensm.old/osm_prtn_config.c      2006-07-11 16:06:33.000000000
> -0400
> +++ opensm/osm_prtn_config.c  2006-07-11 16:08:00.000000000 -0400
> @@ -52,6 +52,7 @@
>  #include <string.h>
>  #include <errno.h>
>  #include <ctype.h>
> +#include <limits.h>
>  
>  #include <iba/ib_types.h>
>  #include <opensm/osm_base.h>
> @@ -159,7 +160,7 @@ static int partition_add_flag(unsigned l
>       } else if (!strncmp(flag, "sl", len)) {
>               unsigned sl;
>  
> -             if (!val || (sl = strtoul(val, NULL, 0)) == 0 || sl >
> 15)
> +             if (!val || (sl = strtoul(val, NULL, 0)) == UINT_MAX ||
> sl > 15)
>                       PARSEWARN(conf->p_log, lineno,
>                               "flag \'sl\' requires valid value"
>                               " - skipped.\n");
> 
> 
> _______________________________________________
> openib-general mailing list
> [email protected]
> http://openib.org/mailman/listinfo/openib-general
> 
> To unsubscribe, please visit
http://openib.org/mailman/listinfo/openib-general
> 


_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to