[BUG] TFTP: No access to subdirectories
Antony Pavlov
antonynpavlov at gmail.com
Sun Sep 3 05:45:44 PDT 2017
On Sun, 3 Sep 2017 10:49:21 +0200
Dennis Menschel <menschel-d at posteo.de> wrote:
> Hello,
>
> I've noticed that since barebox version 2017.07.0, accessing files via TFTP only works for files that are located in the root directory of the TFTP server.
> Accessing files that reside in subdirectories doesn't work anymore.
> The bug affects both access via /mnt/tftp/ and via the tftp shell command.
>
> I've tested the following versions of barebox:
>
> - 2017.05.0: works
> - 2017.06.0: works
> - 2017.07.0: doesn't work anymore
> - 2017.08.0: doesn't work anymore
>
> Below follows the test scenario I've used to reproduce the bug:
>
>
> Scenario
> ========
>
> For the server, I'm using a Raspberry Pi 2 with:
> - a DHCP server (isc-dhcp-server) and
> - a TFTP server (tftpd-hpa).
I have seen the same problem, please see this message:
http://lists.infradead.org/pipermail/barebox/2017-July/030587.html
I use tftpd-hpa too.
I want to note again that reverting 944bf0e1 ('fixup! fs: Implement links to directories') and
a602bebc ('fs: Implement links to directories') fixes the problem.
>
> For the client, I'm using a BeagleBone Black that runs barebox.
>
> The server's IPv4 address is 192.168.2.82, while the client gets address 192.168.2.100.
>
> Test files and directory structure on the TFTP server:
> test-file-1.txt
> test-dir-1/test-file-2.txt
> test-dir-1/test-dir-2/test-file-3.txt
>
>
> Network configuration of barebox
> ================================
>
> barebox at TI AM335x BeagleBone black:/ dhcp
> eth0: 100Mbps full duplex link detected
> DHCP client bound to address 192.168.2.100
> barebox at TI AM335x BeagleBone black:/ devinfo eth0
> Parameters:
> ethaddr: ec:24:b8:9d:77:12 (type: MAC)
> gateway: 0.0.0.0 (type: ipv4)
> ipaddr: 192.168.2.100 (type: ipv4)
> linux.bootargs: (type: string)
> netmask: 255.255.255.0 (type: ipv4)
> serverip: 192.168.2.82 (type: ipv4)
>
>
> Behavior of barebox up to 2017.06.0
> ===================================
>
> Access via /mnt/tftp
> --------------------
>
> barebox at TI AM335x BeagleBone black:/ cat /mnt/tftp/test-file-1.txt
> This is from test-file-1.txt.
> barebox at TI AM335x BeagleBone black:/ cat /mnt/tftp/test-dir-1/test-file-2.txt
> This is from test-file-2.txt.
> barebox at TI AM335x BeagleBone black:/ cat /mnt/tftp/test-dir-1/test-dir-2/test-file-3.txt
> This is from test-file-3.txt.
>
>
> Log entries of TFTP server
> --------------------------
>
> Aug 29 01:45:44 berry03 in.tftpd[5453]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 01:45:44 berry03 in.tftpd[5454]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 01:45:46 berry03 in.tftpd[5455]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 01:45:46 berry03 in.tftpd[5456]: RRQ from 192.168.2.100 filename test-dir-1/test-file-2.txt
> Aug 29 01:45:46 berry03 in.tftpd[5457]: RRQ from 192.168.2.100 filename test-dir-1/test-file-2.txt
> Aug 29 01:46:00 berry03 in.tftpd[5458]: RRQ from 192.168.2.100 filename test-dir-1/test-dir-2
> Aug 29 01:46:00 berry03 in.tftpd[5459]: RRQ from 192.168.2.100 filename test-dir-1/test-dir-2/test-file-3.txt
> Aug 29 01:46:00 berry03 in.tftpd[5460]: RRQ from 192.168.2.100 filename test-dir-1/test-dir-2/test-file-3.txt
>
>
> Access via tftp command
> -----------------------
>
> barebox at TI AM335x BeagleBone black:/ tftp test-file-1.txt
> [#################################################################]
> barebox at TI AM335x BeagleBone black:/ tftp test-dir-1/test-file-2.txt
> [#################################################################]
> barebox at TI AM335x BeagleBone black:/ tftp test-dir-1/test-dir-2/test-file-3.txt
> [#################################################################]
>
>
> Log entries of TFTP server
> --------------------------
>
> Aug 29 01:47:26 berry03 in.tftpd[5468]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 01:47:26 berry03 in.tftpd[5469]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 01:47:26 berry03 in.tftpd[5470]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 01:47:28 berry03 in.tftpd[5471]: RRQ from 192.168.2.100 filename test-dir-1/test-file-2.txt
> Aug 29 01:47:28 berry03 in.tftpd[5472]: RRQ from 192.168.2.100 filename test-dir-1/test-file-2.txt
> Aug 29 01:47:28 berry03 in.tftpd[5473]: RRQ from 192.168.2.100 filename test-dir-1/test-file-2.txt
> Aug 29 01:47:38 berry03 in.tftpd[5474]: RRQ from 192.168.2.100 filename test-dir-1/test-dir-2/test-file-3.txt
> Aug 29 01:47:38 berry03 in.tftpd[5475]: RRQ from 192.168.2.100 filename test-dir-1/test-dir-2/test-file-3.txt
> Aug 29 01:47:38 berry03 in.tftpd[5476]: RRQ from 192.168.2.100 filename test-dir-1/test-dir-2/test-file-3.txt
>
>
>
> Behavior of barebox since 2017.07.0
> ===================================
>
>
> Access via /mnt/tftp
> --------------------
>
> barebox at TI AM335x BeagleBone black:/ cat /mnt/tftp/test-file-1.txt
> This is from test-file-1.txt.
> barebox at TI AM335x BeagleBone black:/ cat /mnt/tftp/test-dir-1/test-file-2.txt
> could not open /mnt/tftp/test-dir-1/test-file-2.txt: Invalid argument
> barebox at TI AM335x BeagleBone black:/ cat /mnt/tftp/test-dir-1/test-dir-2/test-file-3.txt
> could not open /mnt/tftp/test-dir-1/test-dir-2/test-file-3.txt: Invalid argument
>
>
> Log entries of TFTP server
> --------------------------
>
> Aug 29 02:11:01 berry03 in.tftpd[5517]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:11:01 berry03 in.tftpd[5518]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:11:01 berry03 in.tftpd[5519]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:11:01 berry03 in.tftpd[5520]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:11:38 berry03 in.tftpd[5521]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:38 berry03 in.tftpd[5522]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:38 berry03 in.tftpd[5523]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:38 berry03 in.tftpd[5524]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:38 berry03 in.tftpd[5525]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:38 berry03 in.tftpd[5526]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:58 berry03 in.tftpd[5527]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:58 berry03 in.tftpd[5528]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:58 berry03 in.tftpd[5529]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:58 berry03 in.tftpd[5530]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:58 berry03 in.tftpd[5531]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:11:58 berry03 in.tftpd[5532]: RRQ from 192.168.2.100 filename test-dir-1
>
>
> Access via tftp command
> -----------------------
>
> barebox at TI AM335x BeagleBone black:/ tftp test-file-1.txt
> [#################################################################]
> barebox at TI AM335x BeagleBone black:/ tftp test-dir-1/test-file-2.txt
> could not open /.tftp_tmp_path/test-dir-1/test-file-2.txt: Invalid argument
>
> barebox at TI AM335x BeagleBone black:/ tftp test-dir-1/test-dir-2/test-file-3.txt
> could not open /.tftp_tmp_path/test-dir-1/test-dir-2/test-file-3.txt: Invalid argument
>
>
>
> Log entries of TFTP server
> --------------------------
>
> Aug 29 02:13:27 berry03 in.tftpd[5534]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:13:27 berry03 in.tftpd[5535]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:13:27 berry03 in.tftpd[5536]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:13:27 berry03 in.tftpd[5537]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:13:27 berry03 in.tftpd[5538]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:13:27 berry03 in.tftpd[5539]: RRQ from 192.168.2.100 filename test-file-1.txt
> Aug 29 02:13:39 berry03 in.tftpd[5540]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:13:39 berry03 in.tftpd[5541]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:13:39 berry03 in.tftpd[5542]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:14:05 berry03 in.tftpd[5543]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:14:05 berry03 in.tftpd[5544]: RRQ from 192.168.2.100 filename test-dir-1
> Aug 29 02:14:05 berry03 in.tftpd[5545]: RRQ from 192.168.2.100 filename test-dir-1
>
>
> Conclusion
> ==========
>
> As can be seen from the log entries of the TFTP server, the access pattern of barebox has changed.
> All of the attempts to access a subdirectory stop at "test-dir-1".
> Furthermore, the number of accesses per file is different.
> The timestamps indicate which requests belong to one file access attempt.
>
> I hope this information helps.
> Thanks in advance!
>
> Best regards,
> Dennis Menschel
>
--
Best regards,
Antony Pavlov
More information about the barebox
mailing list