* sync libusb with main arch
This commit is contained in:
parent
cb2cc7b2a4
commit
8e849fbc5a
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
pkgname=libusb
|
pkgname=libusb
|
||||||
pkgver=1.0.24
|
pkgver=1.0.24
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="Library that provides generic access to USB devices"
|
pkgdesc="Library that provides generic access to USB devices"
|
||||||
arch=(x86_64 powerpc64le)
|
arch=(x86_64 powerpc64le)
|
||||||
url="https://libusb.info/"
|
url="https://libusb.info/"
|
||||||
@ -13,12 +13,17 @@ license=('LGPL2.1')
|
|||||||
depends=('glibc')
|
depends=('glibc')
|
||||||
makedepends=('systemd')
|
makedepends=('systemd')
|
||||||
provides=('libusb-1.0.so')
|
provides=('libusb-1.0.so')
|
||||||
source=("https://github.com/${pkgname}/${pkgname}/releases/download/v$pkgver/${pkgname}-$pkgver.tar.bz2")
|
source=("https://github.com/${pkgname}/${pkgname}/releases/download/v$pkgver/${pkgname}-$pkgver.tar.bz2"
|
||||||
sha512sums=('5aea36a530aaa15c6dd656d0ed3ce204522c9946d8d39ffbb290dab4a98cda388a2598da4995123d1032324056090bd429e702459626d3e8d7daeebc4e7ff3dc')
|
"${pkgname}-1.0.24-descriptor_parsing.patch"
|
||||||
b2sums=('f6188b5af1225cf8b6d1486b6efcf48e837ee4f2e3592adab3ae6aae0a74a67aa54f40f0dd547f951a194d40954f2ee33acf741d2eee0b8449ce64f2edcf1018')
|
)
|
||||||
|
sha512sums=('5aea36a530aaa15c6dd656d0ed3ce204522c9946d8d39ffbb290dab4a98cda388a2598da4995123d1032324056090bd429e702459626d3e8d7daeebc4e7ff3dc'
|
||||||
|
'588624bdcce2ff3ef98ab28b98b00eb48f16ef9e94033f29aaf8c6d6cb3e56d1299ea59f63b0d7a485955fa85182db0db5c043ceca24345c41f40311483606e2')
|
||||||
|
b2sums=('f6188b5af1225cf8b6d1486b6efcf48e837ee4f2e3592adab3ae6aae0a74a67aa54f40f0dd547f951a194d40954f2ee33acf741d2eee0b8449ce64f2edcf1018'
|
||||||
|
'65efafcaa87cc75000adb0f6fae6c5fc33d72727bacde327bae5e5e68162783c8203f92ecd3de2f7e8a9869f587ea76a0b1a054369a15cd9b3cec8f7fc44036f')
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
cd "$pkgname-$pkgver"
|
cd "$pkgname-$pkgver"
|
||||||
|
patch -Np1 -i ../"${pkgname}-1.0.24-descriptor_parsing.patch"
|
||||||
autoreconf -vfi
|
autoreconf -vfi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
37
libusb/libusb-1.0.24-descriptor_parsing.patch
Normal file
37
libusb/libusb-1.0.24-descriptor_parsing.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
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;
|
Loading…
x
Reference in New Issue
Block a user