tree 02922961c01db29922737f37796265103e96dc6b
parent 8eb891fc809b2300137bcd247025628c06c95a63
author Eric Van Hensbergen <ericvh@ericvh-desktop.austin.ibm.com> 1185476694 -0500
committer Eric Van Hensbergen <ericvh@ericvh-laptop.austin.ibm.com> 1187881968 -0500

9p: fix use after free

On 7/22/07, Adrian Bunk <bunk@stusta.de> wrote:
     The Coverity checker spotted the following use-after-free
     in net/9p/mux.c:

     <--  snip  -->

     ...
     struct p9_conn *p9_conn_create(struct p9_transport *trans, int msize,
                                         unsigned char *extended)
     {
     ...
             if (!m->tagpool) {
                     kfree(m);
                     return ERR_PTR(PTR_ERR(m->tagpool));
             }
     ...

     <--  snip  -->

Also spotted was a leak of the same structure further down in the function.

Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
