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));
>       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

Reply via email to