On 10:14 Fri 06 Nov     , Al Chu wrote:
> Hey Sasha,
> 
> There is a potential for the ports array in ibnd_node_t to be NULL if
> you hit an error during scan and eventually destroy the fabric struct
> before returning to the user.
> 
> Al
> 
> -- 
> Albert Chu
> ch...@llnl.gov
> Computer Scientist
> High Performance Systems Division
> Lawrence Livermore National Laboratory

> From: Albert Chu <ch...@llnl.gov>
> Date: Thu, 5 Nov 2009 15:18:27 -0800
> Subject: [PATCH] fix potential segfault in ibnd_node_t destroy path
> 
> 
> Signed-off-by: Albert Chu <ch...@llnl.gov>

Applied with minor change (see below). Thanks.

> ---
>  infiniband-diags/libibnetdisc/src/ibnetdisc.c |    8 +++++---
>  1 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/infiniband-diags/libibnetdisc/src/ibnetdisc.c 
> b/infiniband-diags/libibnetdisc/src/ibnetdisc.c
> index 62dff93..7ce9a54 100644
> --- a/infiniband-diags/libibnetdisc/src/ibnetdisc.c
> +++ b/infiniband-diags/libibnetdisc/src/ibnetdisc.c
> @@ -605,10 +605,12 @@ static void destroy_node(ibnd_node_t * node)
>  {
>       int p = 0;
>  
> -     for (p = 0; p <= node->numports; p++) {
> -             free(node->ports[p]);
> +     if (node->ports) {
> +             for (p = 0; p <= node->numports; p++) {
> +                     free(node->ports[p]);
> +             }

Removing here unneeded braces around free().

Sasha

> +             free(node->ports);
>       }
> -     free(node->ports);
>       free(node);
>  }
>  
> -- 
> 1.5.4.5
> 

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