Bluetooth: hidp: fix information leak to userland
authorVasiliy Kulikov <segooon@gmail.com>
Sat, 30 Oct 2010 14:26:31 +0000 (18:26 +0400)
committerGustavo F. Padovan <padovan@profusion.mobi>
Wed, 1 Dec 2010 23:04:36 +0000 (21:04 -0200)
Structure hidp_conninfo is copied to userland with version, product,
vendor and name fields unitialized if both session->input and session->hid
are NULL.  It leads to leaking of contents of kernel stack memory.

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
net/bluetooth/hidp/core.c

index c0ee8b3..29544c2 100644 (file)
@@ -107,6 +107,7 @@ static void __hidp_unlink_session(struct hidp_session *session)
 
 static void __hidp_copy_session(struct hidp_session *session, struct hidp_conninfo *ci)
 {
+       memset(ci, 0, sizeof(*ci));
        bacpy(&ci->bdaddr, &session->bdaddr);
 
        ci->flags = session->flags;
@@ -115,7 +116,6 @@ static void __hidp_copy_session(struct hidp_session *session, struct hidp_connin
        ci->vendor  = 0x0000;
        ci->product = 0x0000;
        ci->version = 0x0000;
-       memset(ci->name, 0, 128);
 
        if (session->input) {
                ci->vendor  = session->input->id.vendor;