bluetooth: fix leak of uninitialized data to userspace
PATCH 1/1 bluetooth: fix leak of uninitialized data to userspace
Quoted 1 line
From
45be27894a18f87b71b855fcc4afd50f860254b4Mon Sep 17 00:00:00 2001
From: Vegard Nossum <[email protected]>
Date: Sun, 5 Oct 2008 17:25:45 +0200
Subject: [PATCH] bluetooth: fix leak of uninitialized data to userspace
struct hci_dev_list_req {
__u16 dev_num;
struct hci_dev_req dev_req[0]; /* hci_dev_req structures */
};sizeof(struct hci_dev_list_req) == 4, so the two bytes immediately following "dev_num" will never be initialized. When this structure is copied to userspace, these uninitialized bytes are leaked.
Fix by using kzalloc() instead of kmalloc(). Found using kmemcheck.
--- net/bluetooth/hci_core.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
net/bluetooth/hci_core.c +1 -1
@@ -756,7 +756,7 @@ int hci_get_dev_list(void __user *arg) size =sizeof (*dl) + dev_num *sizeof (*dr); -if (!(dl =kmalloc (size,GFP_KERNEL ))) +if (!(dl =kzalloc (size,GFP_KERNEL )))return -ENOMEM ; dr = dl->dev_req;
Signature · 1 line
1.5.5.1
Marcel Holtmann
maintainerHi Vegard,
Quoted 10 lines
From
45be27894a18f87b71b855fcc4afd50f860254b4Mon Sep 17 00:00:00 2001
From: Vegard Nossum <[email protected]>
Date: Sun, 5 Oct 2008 17:25:45 +0200
Subject: [PATCH] bluetooth: fix leak of uninitialized data to userspacestruct hci_dev_list_req { __u16 dev_num; struct hci_dev_req dev_req[0]; /* hci_dev_req structures */ };
Quoted 5 lines
sizeof(struct hci_dev_list_req)== 4, so the two bytes immediately following "dev_num" will never be initialized. When this structure is copied to userspace, these uninitialized bytes are leaked.Fix by using
kzalloc()instead ofkmalloc(). Found using kmemcheck.
good catch. I thought we moved everything over to kzalloc, but as it seems we forgot at least one. Applied your patch to me tree. Thanks.
Regards
Marcel