mirror of https://github.com/acidanthera/audk.git
4f8b2f9d72
UsbBootReadWriteBlocks() and UsbBootReadWriteBlocks16() use a UINT16 local variable to hold the value of USB_BOOT_MAX_CARRY_SIZE (=0x10000) / BlockSize. When BlockSize is 1, the UINT16 local variable is set to 0x10000 but the high-16 bits are truncated resulting the final value be 0. It causes the while-loop in the two functions accesses 0 block in each loop, resulting the loop never ends. The patch fixes the two functions to make sure no integer overflow happens. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Steven Shi <steven.shi@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> |
||
---|---|---|
.. | ||
UsbBotPei | ||
UsbBusDxe | ||
UsbBusPei | ||
UsbKbDxe | ||
UsbMassStorageDxe | ||
UsbMouseAbsolutePointerDxe | ||
UsbMouseDxe |