diff mbox

hid-core: Avoid uninitialized buffer access

Message ID d1f3f51b2808c78266fec8b786514288defc23a8.1442619093.git.dvhart@linux.intel.com (mailing list archive)
State New, archived
Delegated to: Jiri Kosina
Headers show

Commit Message

Darren Hart Sept. 18, 2015, 11:31 p.m. UTC
From: Richard Purdie <richard.purdie@linuxfoundation.org>

hid_connect adds various strings to the buffer but they're all
conditional. You can find circumstances where nothing would be written
to it but the kernel will still print the supposedly empty buffer with
printk. This leads to corruption on the console/in the logs.

Ensure buf is initialized to an empty string.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[dvhart: Initialize string to "" rather than assign buf[0] = NULL;]
Cc: Jiri Kosina <jikos@kernel.org>
Cc: linux-input@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
 drivers/hid/hid-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jiri Kosina Sept. 23, 2015, 12:09 p.m. UTC | #1
On Fri, 18 Sep 2015, Darren Hart wrote:

> From: Richard Purdie <richard.purdie@linuxfoundation.org>
> 
> hid_connect adds various strings to the buffer but they're all
> conditional. You can find circumstances where nothing would be written
> to it but the kernel will still print the supposedly empty buffer with
> printk. This leads to corruption on the console/in the logs.
> 
> Ensure buf is initialized to an empty string.
> 
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> [dvhart: Initialize string to "" rather than assign buf[0] = NULL;]
> Cc: Jiri Kosina <jikos@kernel.org>
> Cc: linux-input@vger.kernel.org
> Cc: stable@vger.kernel.org
> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> ---
>  drivers/hid/hid-core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 70a11ac..c0fbf4e 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -1611,7 +1611,7 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
>  		"Multi-Axis Controller"
>  	};
>  	const char *type, *bus;
> -	char buf[64];
> +	char buf[64] = "";
>  	unsigned int i;
>  	int len;
>  	int ret;

Applied to hid.git#for-4.3/upstream-fixes.

Thanks,
diff mbox

Patch

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 70a11ac..c0fbf4e 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1611,7 +1611,7 @@  int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
 		"Multi-Axis Controller"
 	};
 	const char *type, *bus;
-	char buf[64];
+	char buf[64] = "";
 	unsigned int i;
 	int len;
 	int ret;