[ofa-general] Re: [PATCH] mad.c: Fix memory leak in switch handling and improve error handling

Hal Rosenstock hal.rosenstock at gmail.com
Mon Jul 30 13:57:24 PDT 2007


On 7/30/07, Roland Dreier <rdreier at cisco.com> wrote:
> I'm having a hard time seeing what this does exactly.  It seems that
> the current code
>
>                } else if (port_priv->device->node_type == RDMA_NODE_IB_SWITCH) {
>                        /* forward case for switches */
>                        memcpy(response, recv, sizeof(*response));
>
> will blindly dereference response even if the allocation failed, so
> the first chunk that bails out if allocating response seems to be
> fixing this.

Yes.

> Anyway this seems like an unrelated change to the rest
> of the patch.

Do these need to be 2 separate patches ?

> I guess the leak fix is:
>
>  > -                       if (!agent_send_response(&response->mad.mad,
>
>  > +                       agent_send_response(&response->mad.mad,

Yes (not going to out is the leak fix).

> but now you're ignoring the return value of that function.
> Hmm... seems that the only other caller also ignores the return
> value too.  Should agent_send_response() just become a void function,
> since it doesn't seem as if there's anything useful to do with the
> return value anyway?

It could. Do you want an updated patch (or patches) ? Let me know.

-- Hal

>  - R.
>



More information about the general mailing list