usbutils: backport one patch to init string buffer before reading from it

backport one patch to init string buffer before reading from it

Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
Signed-off-by: Wenchao Hao <haowenchao@huawei.com>
(cherry picked from commit fa8dd9f24cffca4c93147c0267f528b1f8b2b539)
This commit is contained in:
Zhiqiang Liu 2020-10-29 21:44:05 +08:00 committed by openeuler-sync-bot
parent e85ce04795
commit 456688a14c
2 changed files with 43 additions and 1 deletions

View File

@ -0,0 +1,37 @@
From e3a98cd4870e46cefbfaa1c6f3142c70351aba02 Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Thu, 22 Oct 2020 12:01:44 +0200
Subject: [PATCH 11/15] usbmisc: initialize string buffer before reading from
device.
Cliff Biffle points out that some devices lie about the length of their
string, so we end up with stack data in the string buffer, which is then
displayed by userspace. Fix this up by initializing the data to 0 first
before reading from the device.
Reported-by: Cliff L. Biffle <code@cliffle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
usbmisc.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/usbmisc.c b/usbmisc.c
index 9a329f2..ba0591f 100644
--- a/usbmisc.c
+++ b/usbmisc.c
@@ -210,6 +210,12 @@ char *get_dev_string(libusb_device_handle *dev, uint8_t id)
langid = get_any_langid(dev);
if (!langid) return strdup("(error)");
+ /*
+ * Some devices lie about their string size, so initialize
+ * the buffer with all 0 to account for that.
+ */
+ memset(unicode_buf, 0x00, sizeof(unicode_buf));
+
ret = libusb_get_string_descriptor(dev, id, langid,
(unsigned char *) unicode_buf,
sizeof unicode_buf);
--
1.8.3.1

View File

@ -1,6 +1,6 @@
Name: usbutils
Version: 012
Release: 2
Release: 3
Summary: Linux utilities for USB device
License: GPLv2+
URL: http://www.linux-usb.org/
@ -10,6 +10,8 @@ Source1: GPL-2.0.txt
Source2: GPL-3.0.txt
BuildRequires: libusbx-devel systemd-devel git gcc libtool
Patch1: 0001-usbmisc-initialize-string-buffer-before-reading-from.patch
Requires: hwdata
%description
@ -45,6 +47,9 @@ install -D -m 644 %{SOURCE2} %{buildroot}%{_defaultlicensedir}/%{name}/GPL-3.0.t
%{_mandir}/*/*
%changelog
* Thu Oct 29 2020 Zhiqiang Liu <liuzhiqiang26@huawei.com> - 012-3
- backport one patch to init string buffer before reading from it
* Tue Sep 28 2021 Wenchao Hao <haowenchao@huawei.com> - 012-2
- Remove unused patches file