]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
This patch fixes the error handling in raw_sendmsg().
authorbet-frogger <bet-frogger@030b6a49-0b11-0410-94ab-b0dab22257f2>
Sun, 11 Jun 2006 16:57:58 +0000 (16:57 +0000)
committerbet-frogger <bet-frogger@030b6a49-0b11-0410-94ab-b0dab22257f2>
Sun, 11 Jun 2006 16:57:58 +0000 (16:57 +0000)
If the memcpy_fromiovec() fails the device refcount was not decreased
by a dev_put() call. This patch adds the missing dev_put().

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
git-svn-id: svn://svn.berlios.de//socketcan/trunk@29 030b6a49-0b11-0410-94ab-b0dab22257f2

kernel/2.6/net/can/raw.c

index d88daf564c94be9c45f1a92a2c4be86dc494fa58..17bc11c25d6eb9980c43aa99d0a68a1b7f3658eb 100644 (file)
@@ -502,6 +502,7 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock,
        skb = alloc_skb(size, GFP_KERNEL);
        if ((err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size)) < 0) {
                kfree_skb(skb);
+               dev_put(dev);
                return err;
        }
        skb->dev = dev;