TFTP - check for len == 0 before storing
Hello,
I had a problem with an old TFTP Server which is sending a second "last" data block with "len == 0" at end. It's clearly not RFC conform, but I still made a additional check in u-boot/tftp to avoid a wrong "filesize" value. This wrong filesize value caused some trouble by NAND operations.
Regards
David
Date: Wed, 20 Apr 2011 10:12:10 +0200
Subject: [PATCH] Check for for data block len == 0
--- net/tftp.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
net/tftp.c +8 -2
@@ -135,8 +135,14 @@ mcast_cleanup(void)static __inline__void store_block (unsigned block,uchar * src,unsigned len) { -ulong offset = block * TftpBlkSize + TftpBlockWrapOffset; -ulong newsize = offset + len; +ulong offset =0 ; +ulong newsize =0 ; + +if (len ==0 ) +return ; + + offset = block * TftpBlkSize + TftpBlockWrapOffset; + newsize = offset + len;#ifdef CONFIG_SYS_DIRECT_FLASH_TFTP int i, rc =0 ;
Hi David,
Quoted 4 lines
I had a problem with an old TFTP Server which is sending a second "last" data block with "len == 0" at end. It's clearly not RFC conform, but I still made a additional check in u-boot/tftp to avoid a wrong "filesize" value. This wrong filesize value caused some trouble by NAND operations.
Please look at our patch guidelines[1] on how to submit patches. Especially a signed-off-by is missing on this patch.
Moreover, please put the explanation into the commit log so that one can learn the rationale for the change when studying the source with git.
Thanks
Detlev
[1] http://www.denx.de/wiki/U-Boot/Patches
Signature · 8 lines
LISP has jokingly been described as "the most intelligent way to misuse a computer". I think that description a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts. - Edsger W. Dijkstra -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de