* [gentoo-commits] repo/gentoo:master commit in: dev-libs/libusb/files/, dev-libs/libusb/
@ 2020-12-14 2:13 Lars Wendler
0 siblings, 0 replies; 2+ messages in thread
From: Lars Wendler @ 2020-12-14 2:13 UTC (permalink / raw
To: gentoo-commits
commit: 64634fb2c17c6dc37a6d174803f7183f898fbb00
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 14 02:13:01 2020 +0000
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Mon Dec 14 02:13:01 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64634fb2
dev-libs/libusb: Revbump to fix Apple and USV device detection
Closes: https://bugs.gentoo.org/759814
Package-Manager: Portage-3.0.12, Repoman-3.0.2
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
...libusb-1.0.24-multi_device_config_parsing.patch | 65 ++++++++++++++++++++++
...ibusb-1.0.24.ebuild => libusb-1.0.24-r1.ebuild} | 4 ++
2 files changed, 69 insertions(+)
diff --git a/dev-libs/libusb/files/libusb-1.0.24-multi_device_config_parsing.patch b/dev-libs/libusb/files/libusb-1.0.24-multi_device_config_parsing.patch
new file mode 100644
index 00000000000..739d41c404a
--- /dev/null
+++ b/dev-libs/libusb/files/libusb-1.0.24-multi_device_config_parsing.patch
@@ -0,0 +1,65 @@
+From f6d2cb561402c3b6d3627c0eb89e009b503d9067 Mon Sep 17 00:00:00 2001
+From: Chris Dickens <christopher.a.dickens@gmail.com>
+Date: Sun, 13 Dec 2020 15:49:19 -0800
+Subject: [PATCH] linux_usbfs: Fix parsing of descriptors for
+ multi-configuration devices
+
+Commit e2be556bd2 ("linux_usbfs: Parse config descriptors during device
+initialization") introduced a regression for devices with multiple
+configurations. The logic that verifies the reported length of the
+configuration descriptors failed to count the length of the
+configuration descriptor itself and would truncate the actual length by
+9 bytes, leading to a parsing error for subsequent descriptors.
+
+Closes #825
+
+Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
+---
+ libusb/os/linux_usbfs.c | 12 ++++++++----
+ libusb/version_nano.h | 2 +-
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c
+index fb2ed53a..4d2dc8d6 100644
+--- a/libusb/os/linux_usbfs.c
++++ b/libusb/os/linux_usbfs.c
+@@ -641,7 +641,12 @@ static int seek_to_next_config(struct libusb_context *ctx,
+ uint8_t *buffer, size_t len)
+ {
+ struct usbi_descriptor_header *header;
+- int offset = 0;
++ int offset;
++
++ /* Start seeking past the config descriptor */
++ offset = LIBUSB_DT_CONFIG_SIZE;
++ buffer += LIBUSB_DT_CONFIG_SIZE;
++ len -= LIBUSB_DT_CONFIG_SIZE;
+
+ while (len > 0) {
+ if (len < 2) {
+@@ -718,7 +723,7 @@ static int parse_config_descriptors(struct libusb_device *dev)
+ }
+
+ if (priv->sysfs_dir) {
+- /*
++ /*
+ * In sysfs wTotalLength is ignored, instead the kernel returns a
+ * config descriptor with verified bLength fields, with descriptors
+ * with an invalid bLength removed.
+@@ -727,8 +732,7 @@ static int parse_config_descriptors(struct libusb_device *dev)
+ int offset;
+
+ if (num_configs > 1 && idx < num_configs - 1) {
+- offset = seek_to_next_config(ctx, buffer + LIBUSB_DT_CONFIG_SIZE,
+- remaining - LIBUSB_DT_CONFIG_SIZE);
++ offset = seek_to_next_config(ctx, buffer, remaining);
+ if (offset < 0)
+ return offset;
+ sysfs_config_len = (uint16_t)offset;
+diff --git a/libusb/version_nano.h b/libusb/version_nano.h
+index 61a0a700..578b0979 100644
+--- a/libusb/version_nano.h
++++ b/libusb/version_nano.h
+@@ -1 +1 @@
+-#define LIBUSB_NANO 11584
++#define LIBUSB_NANO 11586
diff --git a/dev-libs/libusb/libusb-1.0.24.ebuild b/dev-libs/libusb/libusb-1.0.24-r1.ebuild
similarity index 95%
rename from dev-libs/libusb/libusb-1.0.24.ebuild
rename to dev-libs/libusb/libusb-1.0.24-r1.ebuild
index 167ef4b659d..50c1cb3b454 100644
--- a/dev-libs/libusb/libusb-1.0.24.ebuild
+++ b/dev-libs/libusb/libusb-1.0.24-r1.ebuild
@@ -19,6 +19,10 @@ DEPEND="${RDEPEND}
!udev? ( virtual/os-headers )"
BDEPEND="doc? ( app-doc/doxygen )"
+PATCHES=(
+ "${FILESDIR}/${P}-multi_device_config_parsing.patch" #759814
+)
+
multilib_src_configure() {
local myeconfargs=(
$(use_enable static-libs static)
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/libusb/files/, dev-libs/libusb/
@ 2022-02-20 23:11 Sam James
0 siblings, 0 replies; 2+ messages in thread
From: Sam James @ 2022-02-20 23:11 UTC (permalink / raw
To: gentoo-commits
commit: 057e21919e19feb2fd4d51e2bf18d3c0b4512a61
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 20 22:14:46 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Feb 20 23:08:37 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=057e2191
dev-libs/libusb: fix build failure with -O3
Upstream patch (not yet merged, but simple enough) which works around
a build failure (false positive) with -O3.
Closes: https://bugs.gentoo.org/832732
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../files/libusb-1.0.25-fix-O3-warning.patch | 32 ++++++++++++++++++++++
dev-libs/libusb/libusb-1.0.25.ebuild | 4 +++
2 files changed, 36 insertions(+)
diff --git a/dev-libs/libusb/files/libusb-1.0.25-fix-O3-warning.patch b/dev-libs/libusb/files/libusb-1.0.25-fix-O3-warning.patch
new file mode 100644
index 000000000000..7270b057d172
--- /dev/null
+++ b/dev-libs/libusb/files/libusb-1.0.25-fix-O3-warning.patch
@@ -0,0 +1,32 @@
+https://github.com/libusb/libusb/pull/1062
+https://github.com/libusb/libusb/issues/1063
+https://bugs.gentoo.org/832732
+
+From 8bb81fe72286cdcb782c7af4f0d7ef715b2e137c Mon Sep 17 00:00:00 2001
+From: Yegor Yefremov <yegorslists@googlemail.com>
+Date: Sun, 6 Feb 2022 07:12:14 +0100
+Subject: [PATCH] linux_usbfs: fix maybe-uninitialized error
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Initialize active_config to an invalid value to avoid the following
+compilation error:
+
+os/linux_usbfs.c: In function ‘op_get_configuration’:
+os/linux_usbfs.c:1452:12: error: ‘active_config’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
+ 1452 | *config = (uint8_t)active_config;
+
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+--- a/libusb/os/linux_usbfs.c
++++ b/libusb/os/linux_usbfs.c
+@@ -1429,7 +1429,7 @@ static int op_get_configuration(struct libusb_device_handle *handle,
+ uint8_t *config)
+ {
+ struct linux_device_priv *priv = usbi_get_device_priv(handle->dev);
+- int active_config;
++ int active_config = -1; /* to please compiler */
+ int r;
+
+ if (priv->sysfs_dir) {
+
diff --git a/dev-libs/libusb/libusb-1.0.25.ebuild b/dev-libs/libusb/libusb-1.0.25.ebuild
index 328fa227b1de..71c8364d0b70 100644
--- a/dev-libs/libusb/libusb-1.0.25.ebuild
+++ b/dev-libs/libusb/libusb-1.0.25.ebuild
@@ -21,6 +21,10 @@ DEPEND="${RDEPEND}
!udev? ( virtual/os-headers )"
BDEPEND="doc? ( app-doc/doxygen )"
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-O3-warning.patch
+)
+
multilib_src_configure() {
local myeconfargs=(
$(use_enable static-libs static)
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-02-20 23:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-20 23:11 [gentoo-commits] repo/gentoo:master commit in: dev-libs/libusb/files/, dev-libs/libusb/ Sam James
-- strict thread matches above, loose matches on Subject: below --
2020-12-14 2:13 Lars Wendler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox