861ac185a6
```sh git grep -l '^patch_args=-Np0' "srcpkgs/$1*/template" | while read template; do for p in ${template%/template}/patches/*; do sed -i ' \,^[+-][+-][+-] /dev/null,b /^[*-]\+ [0-9]\+\(,[0-9]\+\)\? [*-]\+$/b s,^[*][*][*] ,&a/, /^--- /{ s,\(^--- \)\(./\)*,\1a/, s,[.][Oo][Rr][Ii][Gg]\([ /]\),\1, s/[.][Oo][Rr][Ii][Gg]$// s/[.]patched[.]\([^.]\)/.\1/ h } /^+++ -/{ g s/^--- a/+++ b/ b } s,\(^+++ \)\(./\)*,\1b/, ' "$p" done sed -i '/^patch_args=/d' $template done ```
35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
--- 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;
|