| Index: third_party/libusb/darwin-sigfpe.patch
|
| diff --git a/third_party/libusb/darwin-sigfpe.patch b/third_party/libusb/darwin-sigfpe.patch
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3c74db1857015c18dd7854871b41f2d5dd728a2c
|
| --- /dev/null
|
| +++ b/third_party/libusb/darwin-sigfpe.patch
|
| @@ -0,0 +1,22 @@
|
| +diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c
|
| +index b0ee5b2..fe40899 100644
|
| +--- a/libusb/os/darwin_usb.c
|
| ++++ b/libusb/os/darwin_usb.c
|
| +@@ -1449,8 +1449,14 @@ static int submit_bulk_transfer(struct usbi_transfer *itransfer) {
|
| +
|
| + cInterface = &priv->interfaces[iface];
|
| +
|
| +- (*(cInterface->interface))->GetPipeProperties (cInterface->interface, pipeRef, &direction, &number,
|
| +- &transferType, &maxPacketSize, &interval);
|
| ++ ret = (*(cInterface->interface))->GetPipeProperties (cInterface->interface, pipeRef, &direction, &number,
|
| ++ &transferType, &maxPacketSize, &interval);
|
| ++
|
| ++ if (ret) {
|
| ++ usbi_err (TRANSFER_CTX (transfer), "bulk transfer failed (dir = %s): %s (code = 0x%08x)", IS_XFERIN(transfer) ? "In" : "Out",
|
| ++ darwin_error_str(ret), ret);
|
| ++ return darwin_to_libusb (ret);
|
| ++ }
|
| +
|
| + if (0 != (transfer->length % maxPacketSize)) {
|
| + /* do not need a zero packet */
|
| +
|
|
|