]> git.itanic.dy.fi Git - linux-stable/commitdiff
[PATCH] drivers/infiniband/core/mad.c: fix a use-after-free
authorAdrian Bunk <bunk@stusta.de>
Mon, 28 Nov 2005 11:46:00 +0000 (12:46 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 14 Dec 2005 23:42:54 +0000 (15:42 -0800)
The Coverity checker spotted this obvious use-after-free
caused by a wrong order of the cleanups.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/infiniband/core/mad.c

index a14ca87fda188566a98d3627a9d36061dffb0bd2..96855fceb25043bd5685e877d2f07dce6745d8fb 100644 (file)
@@ -356,9 +356,9 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
        spin_unlock_irqrestore(&port_priv->reg_lock, flags);
        kfree(reg_req);
 error3:
-       kfree(mad_agent_priv);
-error2:
        ib_dereg_mr(mad_agent_priv->agent.mr);
+error2:
+       kfree(mad_agent_priv);
 error1:
        return ret;
 }