From: Marcel Holtmann <marcel@holtmann.org>
To: Andi Kleen <ak@suse.de>
Cc: bluez-devel@lists.sourceforge.net, netdev@oss.sgi.com,
viro@zenII.linux.org.uk
Subject: Re: some bluetooth fixes
Date: Fri, 06 Feb 2004 15:58:32 +0100 [thread overview]
Message-ID: <1076079512.2806.40.camel@pegasus> (raw)
In-Reply-To: <20040206050042.20a2b3b0.ak@suse.de>
Hi Andi,
> While reading bluetooth code I noticed some bugs and potential overflows.
>
> Also I commented one ref-counting bug.
>
> Patch against 2.6.2.
thanks for looking at it. Same applies to 2.4, right?
> diff -u linux-2.6.2-work32/net/bluetooth/cmtp/sock.c-o linux-2.6.2-work32/net/bluetooth/cmtp/sock.c
> --- linux-2.6.2-work32/net/bluetooth/cmtp/sock.c-o 2004-02-05 08:09:54.000000000 +0100
> +++ linux-2.6.2-work32/net/bluetooth/cmtp/sock.c 2004-02-05 14:57:57.000000000 +0100
> @@ -87,8 +87,10 @@
> if (!nsock)
> return err;
>
> - if (nsock->sk->sk_state != BT_CONNECTED)
> + if (nsock->sk->sk_state != BT_CONNECTED) {
> + fput(nsock->file);
> return -EBADFD;
> + }
>
> err = cmtp_add_connection(&ca, nsock);
> if (!err) {
The same should apply to net/bluetooth/bnep/sock.c
> diff -u linux-2.6.2-work32/net/bluetooth/hci_sock.c-o linux-2.6.2-work32/net/bluetooth/hci_sock.c
> --- linux-2.6.2-work32/net/bluetooth/hci_sock.c-o 2004-02-05 08:09:54.000000000 +0100
> +++ linux-2.6.2-work32/net/bluetooth/hci_sock.c 2004-02-05 14:57:59.000000000 +0100
> @@ -392,6 +392,8 @@
>
> skb->pkt_type = *((unsigned char *) skb->data);
> skb_pull(skb, 1);
> + /* AK: looks broken. Who guarantees that hdev doesn't go away while
> + the skb is queued ? */
> skb->dev = (void *) hdev;
>
> if (skb->pkt_type == HCI_COMMAND_PKT) {
Why should hdev go away?
> diff -u linux-2.6.2-work32/net/bluetooth/hci_conn.c-o linux-2.6.2-work32/net/bluetooth/hci_conn.c
> --- linux-2.6.2-work32/net/bluetooth/hci_conn.c-o 2004-02-05 08:09:54.000000000 +0100
> +++ linux-2.6.2-work32/net/bluetooth/hci_conn.c 2004-02-05 15:06:10.000000000 +0100
> @@ -353,21 +353,24 @@
> struct hci_conn_info *ci;
> struct hci_dev *hdev;
> struct list_head *p;
> - int n = 0, size;
> + int n = 0, size, err;
>
> if (copy_from_user(&req, (void *) arg, sizeof(req)))
> return -EFAULT;
>
> - if (!(hdev = hci_dev_get(req.dev_id)))
> - return -ENODEV;
> + if (req.conn_num >= (2*PAGE_SIZE)/sizeof(struct hci_conn_info))
> + return -EINVAL;
>
> size = req.conn_num * sizeof(struct hci_conn_info) + sizeof(req);
>
> - if (verify_area(VERIFY_WRITE, (void *)arg, size))
> - return -EFAULT;
> -
> if (!(cl = (void *) kmalloc(size, GFP_KERNEL)))
> return -ENOMEM;
> +
> + if (!(hdev = hci_dev_get(req.dev_id))) {
> + kfree(cl);
> + return -ENODEV;
> + }
> +
> ci = cl->conn_info;
>
> hci_dev_lock_bh(hdev);
Why 2*PAGE_SIZE in this case? What is different?
Regards
Marcel
next prev parent reply other threads:[~2004-02-06 14:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-06 4:00 some bluetooth fixes Andi Kleen
2004-02-06 14:58 ` Marcel Holtmann [this message]
2004-02-07 2:24 ` Andi Kleen
2004-02-07 11:13 ` Marcel Holtmann
2004-02-07 11:57 ` Andi Kleen
2004-02-07 16:57 ` Marcel Holtmann
2004-02-07 17:24 ` Andi Kleen
2004-02-11 18:55 ` Marcel Holtmann
2004-02-11 19:33 ` Andi Kleen
2004-02-11 20:47 ` Marcel Holtmann
2004-02-11 19:55 ` Andi Kleen
2004-02-06 23:30 ` Marcel Holtmann
2004-02-06 23:34 ` David S. Miller
2004-02-06 23:46 ` Marcel Holtmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1076079512.2806.40.camel@pegasus \
--to=marcel@holtmann.org \
--cc=ak@suse.de \
--cc=bluez-devel@lists.sourceforge.net \
--cc=netdev@oss.sgi.com \
--cc=viro@zenII.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).