Hi, Please review the attached patch for Mtftp6Dxe driver.
The issue: 1. TFTP protocol is based upon UDP, which means no reliability guaranteed from network stack. 2. Upon each successful received data packet, the client sends an ACK and restarting a timeout timer. 3. Once the timer hit the timeout, the client retransmits the last ACK message and restarting the timeout timer. This step happens RETRY_TIMES times. 4. Mtftp6Dxe implementation has a bug that in step 3 instead of sending the last ACK, it sends the current session's first packet, which is TFTP RReq (TFTP Read Request), which, in turn, evaluates to a violation of the TFTP protocol and causes it's undefined behavior. 5. A fix to the above is in the patch provided, which ensures the last ACKed packet is sent on retransmission. Ari
fix_retx_mtftp6dxe.patch
Description: fix_retx_mtftp6dxe.patch
------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel