]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - net/bluetooth/sco.c
Bluetooth: Fix potential bad memory access with sysfs files
[mirror_ubuntu-artful-kernel.git] / net / bluetooth / sco.c
index f93b939539bc121da4448ce68e0e785b55b08416..967a75175c663728874a7dfc7a4d15c7636882f4 100644 (file)
@@ -960,13 +960,22 @@ static ssize_t sco_sysfs_show(struct class *dev,
        struct sock *sk;
        struct hlist_node *node;
        char *str = buf;
+       int size = PAGE_SIZE;
 
        read_lock_bh(&sco_sk_list.lock);
 
        sk_for_each(sk, node, &sco_sk_list.head) {
-               str += sprintf(str, "%s %s %d\n",
+               int len;
+
+               len = snprintf(str, size, "%s %s %d\n",
                                batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst),
                                sk->sk_state);
+
+               size -= len;
+               if (size <= 0)
+                       break;
+
+               str += len;
        }
 
        read_unlock_bh(&sco_sk_list.lock);