diff --git a/src/main/java/de/ailis/usb4java/support/ControlIrpQueue.java b/src/main/java/de/ailis/usb4java/support/ControlIrpQueue.java index 49f5ff9..be2ed14 100644 --- a/src/main/java/de/ailis/usb4java/support/ControlIrpQueue.java +++ b/src/main/java/de/ailis/usb4java/support/ControlIrpQueue.java @@ -12,6 +12,7 @@ import java.nio.ByteBuffer; import javax.usb.UsbControlIrp; import javax.usb.UsbException; import javax.usb.UsbIrp; +import javax.usb.UsbShortPacketException; import javax.usb.event.UsbDeviceDataEvent; import de.ailis.usb4java.exceptions.Usb4JavaException; @@ -64,6 +65,8 @@ public final class ControlIrpQueue extends AbstractIrpQueue buffer.rewind(); buffer.get(irp.getData(), irp.getOffset(), len); irp.setActualLength(len); + if (irp.getActualLength() != irp.getLength() && !irp.getAcceptShortPacket()) + throw new UsbShortPacketException(); } /**