On 13:39 Tue 03 Nov     , Al Chu wrote:
> Need to check for NULL?  Manpage says its possible:
> 
> ---
> realloc()  returns  a  pointer to the newly allocated memory, which is
> suitably aligned for any kind of variable and may be different from ptr,
> or NULL if the request fails.
> ---
> 
> Al
> 
> On Tue, 2009-11-03 at 13:20 -0800, Ira Weiny wrote:
> > From: Ira Weiny <wei...@llnl.gov>
> > Date: Tue, 3 Nov 2009 13:19:33 -0800
> > Subject: [PATCH] infiniband-diags/ibqueryerrors: Fix realloc size to 
> > prevent core
> > 
> >     Realloc size was wrong causing a core when enough errors were
> >     suppressed.  Reproduced by running:
> > 
> >     ibqueryerrors -c -s 
> > RcvSwRelayErrors,LinkDowned,VL15Dropped,XmtWait,SymbolErrors,LinkRecovers,RcvErrors
> > 
> > Signed-off-by: Ira Weiny <wei...@llnl.gov>
> > ---
> >  infiniband-diags/src/ibqueryerrors.c |    3 ++-
> >  1 files changed, 2 insertions(+), 1 deletions(-)
> > 
> > diff --git a/infiniband-diags/src/ibqueryerrors.c 
> > b/infiniband-diags/src/ibqueryerrors.c
> > index f83f29e..aac7087 100644
> > --- a/infiniband-diags/src/ibqueryerrors.c
> > +++ b/infiniband-diags/src/ibqueryerrors.c
> > @@ -381,7 +381,8 @@ void print_node(ibnd_node_t * node, void *user_data)
> >  
> >  static void add_suppressed(enum MAD_FIELDS field)
> >  {
> > -   suppressed_fields = realloc(suppressed_fields, sizeof(enum MAD_FIELDS));
> > +   suppressed_fields = realloc(suppressed_fields,
> > +                               (sup_total+1)*sizeof(enum MAD_FIELDS));

Also it is never freed. Maybe just to have a static array (0-terminated)
and to not bother with realloc()?

Sasha

> >     suppressed_fields[sup_total] = field;
> >     sup_total++;
> >  }
> -- 
> Albert Chu
> ch...@llnl.gov
> Computer Scientist
> High Performance Systems Division
> Lawrence Livermore National Laboratory
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to