[ofa-general] [PATCH] Fix umad_get_cas_names() usage in libibumad.

Sasha Khapyorsky sashak at voltaire.com
Sat Sep 15 12:23:39 PDT 2007


On 17:30 Mon 10 Sep     , Arne Redlich wrote:
> "Hal Rosenstock" <hal.rosenstock at gmail.com> writes:
> 
> > On 9/7/07, Arne Redlich <arne.redlich at xiranet.com> wrote:
> >> resolve_ca_name() passes a wrong "max" argument to umad_get_cas_names.
> >>
> >> Signed-off-by: Arne Redlich <arne.redlich at xiranet.com>
> >> ---
> >> diff --git a/libibumad/src/umad.c b/libibumad/src/umad.c
> >> index 787aa92..589684c 100644
> >> --- a/libibumad/src/umad.c
> >> +++ b/libibumad/src/umad.c
> >> @@ -307,7 +307,7 @@ resolve_ca_name(char *ca_name, int *best_port)
> >>        }
> >>
> >>        /* Get the list of CA names */
> >> -       if ((n = umad_get_cas_names((void *)names, UMAD_CA_NAME_LEN)) < 0)
> >> +       if ((n = umad_get_cas_names((void *)names, 20)) < 0)
> >
> > Rather than the hard coded 20 here and elsewhere, should this be
> > replaced by a #define ?
> 
> How about a umad_get_cas_count() helper instead?

I'm not against using '20' here since this fixed size array is declared
just few lines above. A helper function could be nicer, but what do
you mean? Something like (sizeof(names)/UMAD_CA_NAME_LEN)?

Sasha



More information about the general mailing list