| From 79b568b9d0c7c5d81932f4486d50b38efdd6da6d Mon Sep 17 00:00:00 2001 |
| From: Richard Purdie <richard.purdie@linuxfoundation.org> |
| Date: Fri, 18 Sep 2015 16:31:33 -0700 |
| Subject: HID: core: Avoid uninitialized buffer access |
| |
| commit 79b568b9d0c7c5d81932f4486d50b38efdd6da6d upstream. |
| |
| 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 |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
| Signed-off-by: Zefan Li <lizefan@huawei.com> |
| --- |
| drivers/hid/hid-core.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/hid/hid-core.c |
| +++ b/drivers/hid/hid-core.c |
| @@ -1301,7 +1301,7 @@ int hid_connect(struct hid_device *hdev, |
| "Multi-Axis Controller" |
| }; |
| const char *type, *bus; |
| - char buf[64]; |
| + char buf[64] = ""; |
| unsigned int i; |
| int len; |
| int ret; |