diff options
author | Dan Carpenter <error27@gmail.com> | 2010-04-22 03:52:01 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-28 04:03:36 +0400 |
commit | 477fffb082920476cc26f238d65538ccb8d601e1 (patch) | |
tree | 3e49749f9c654b09699bb872c4611f71a3ed70d4 /net/bluetooth | |
parent | 761ed01b35ca32bfd4166cc3862ae80ee33e3a4b (diff) | |
download | linux-477fffb082920476cc26f238d65538ccb8d601e1.tar.xz |
bluetooth: handle l2cap_create_connless_pdu() errors
l2cap_create_connless_pdu() can sometimes return ERR_PTR(-ENOMEM) or
ERR_PTR(-EFAULT).
Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/l2cap.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index 99d68c34e4f1..9753b690a8b3 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -1626,7 +1626,10 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms /* Connectionless channel */ if (sk->sk_type == SOCK_DGRAM) { skb = l2cap_create_connless_pdu(sk, msg, len); - err = l2cap_do_send(sk, skb); + if (IS_ERR(skb)) + err = PTR_ERR(skb); + else + err = l2cap_do_send(sk, skb); goto done; } |