net: Fix TftpStart() ip:filename bug
PATCH v2 1/1 net: Fix TftpStart() ip:filename bug
The TftpStart() function modifies the 'BootFile' string when 'BootFile' contains both an IP address and filename (eg 1.2.3.4:/path/file). This causes subsequent calls to TftpStart to incorrectly parse the TFTP filename and server IP address to use. For example:
=> tftp 0x100000 10.52.0.62:/home/ptyser/non_existant
Speed: 100, half duplex
Using eTSEC1 device
TFTP from server 10.52.0.62; our IP address is 10.52.253.79
^^^^^^^^^^ CORRECT
Filename '/home/ptyser/non_existant'.
^^^^^^^^^^^^^^^^^^^^^^^^^ CORRECTLoad address: 0x100000
Loading: *
TFTP error: 'File not found' (1)
Starting again
eTSEC2: No link.
Speed: 100, half duplex
Using eTSEC1 device
TFTP from server 10.52.0.33; our IP address is 10.52.253.79
^^^^^^^^^^ WRONG
Filename '10.52.0.62'.
^^^^^^^^^^ WRONGLoad address: 0x100000
Loading: *
TFTP error: 'File not found' (1)
Starting again
TftpStart() was modified to not modify the 'BootFile' string.
---
doah, forgot SOB
net/tftp.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
net/tftp.c +1 -2
@@ -499,9 +499,8 @@ TftpStart (void)strncpy (tftp_filename, BootFile,MAX_LEN ); tftp_filename[MAX_LEN -1 ] =0 ; }else { - *p++ ='\0' ; TftpServerIP =string_to_ip (BootFile); -strncpy (tftp_filename, p,MAX_LEN ); +strncpy (tftp_filename, p +1 ,MAX_LEN ); tftp_filename[MAX_LEN -1 ] =0 ; } }
Signature · 1 line
1.6.0.2.GIT
Ben Warren
AppliedPATCH v2 1/1 net: Fix TftpStart() ip:filename bug
Hi Peter,
Quoted 31 lines · Peter Tyser
The
TftpStart()function modifies the 'BootFile' string when 'BootFile' contains both an IP address and filename (eg 1.2.3.4:/path/file). This causes subsequent calls to TftpStart to incorrectly parse the TFTP filename and server IP address to use. For example:=> tftp
0x10000010.52.0.62:/home/ptyser/non_existant
Speed: 100, half duplex
Using eTSEC1 device
TFTP from server 10.52.0.62; our IP address is 10.52.253.79^^^^^^^^^^ CORRECT Filename '/home/ptyser/non_existant'. ^^^^^^^^^^^^^^^^^^^^^^^^^ CORRECTLoad address:
0x100000
Loading: *
TFTP error: 'File not found' (1)
Starting againeTSEC2: No link.
Speed: 100, half duplex
Using eTSEC1 device
TFTP from server 10.52.0.33; our IP address is 10.52.253.79^^^^^^^^^^ WRONG Filename '10.52.0.62'. ^^^^^^^^^^ WRONGLoad address:
0x100000
Loading: *
TFTP error: 'File not found' (1)
Starting again
Quoted 4 lines
TftpStart()was modified to not modify the 'BootFile' string.Signed-off-by Peter Tyser <[email protected]>---
Applied to net repo.
thanks,
Ben