diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2021-04-16 23:29:36 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2021-04-17 08:59:50 +0200 |
commit | 96ec6f0e63c74603e12941ffc8bb0c28ebe566cb (patch) | |
tree | 50a461c35488c3b2a43a578a31f7346e518e4f23 /source/l/libusb | |
parent | 32353d1a5338767d5c5bbd5c99bc0969cd901a5a (diff) | |
download | current-96ec6f0e63c74603e12941ffc8bb0c28ebe566cb.tar.gz current-96ec6f0e63c74603e12941ffc8bb0c28ebe566cb.tar.xz |
Fri Apr 16 23:29:36 UTC 202120210416232936
a/kernel-generic-5.10.31-x86_64-1.txz: Upgraded.
a/kernel-huge-5.10.31-x86_64-1.txz: Upgraded.
a/kernel-modules-5.10.31-x86_64-1.txz: Upgraded.
a/mkinitrd-1.4.11-x86_64-23.txz: Rebuilt.
Get rid of patch created /sbin/mkinitrd.orig. Thanks to burdi01.
d/kernel-headers-5.10.31-x86-1.txz: Upgraded.
k/kernel-source-5.10.31-noarch-1.txz: Upgraded.
l/libusb-1.0.24-x86_64-4.txz: Rebuilt.
Fix parsing of descriptors for multi-configuration devices. Thanks to acbff0.
n/network-scripts-15.0-noarch-16.txz: Rebuilt.
netconfig: fix typo. Thanks to Gerard Lally.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
testing/packages/linux-5.11.x/kernel-generic-5.11.15-x86_64-1.txz: Upgraded.
testing/packages/linux-5.11.x/kernel-headers-5.11.15-x86-1.txz: Upgraded.
testing/packages/linux-5.11.x/kernel-huge-5.11.15-x86_64-1.txz: Upgraded.
testing/packages/linux-5.11.x/kernel-modules-5.11.15-x86_64-1.txz: Upgraded.
testing/packages/linux-5.11.x/kernel-source-5.11.15-noarch-1.txz: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source/l/libusb')
-rw-r--r-- | source/l/libusb/f6d2cb561402c3b6d3627c0eb89e009b503d9067.patch | 65 | ||||
-rwxr-xr-x | source/l/libusb/libusb.SlackBuild | 4 |
2 files changed, 68 insertions, 1 deletions
diff --git a/source/l/libusb/f6d2cb561402c3b6d3627c0eb89e009b503d9067.patch b/source/l/libusb/f6d2cb561402c3b6d3627c0eb89e009b503d9067.patch new file mode 100644 index 000000000..739d41c40 --- /dev/null +++ b/source/l/libusb/f6d2cb561402c3b6d3627c0eb89e009b503d9067.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/source/l/libusb/libusb.SlackBuild b/source/l/libusb/libusb.SlackBuild index 0293c0558..c8c429c68 100755 --- a/source/l/libusb/libusb.SlackBuild +++ b/source/l/libusb/libusb.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libusb VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-4} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -77,6 +77,8 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ +zcat $CWD/f6d2cb561402c3b6d3627c0eb89e009b503d9067.patch.gz | patch -p1 --verbose || exit 1 + CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ |