[BUG] TFTP: No access to subdirectories

Dennis Menschel menschel-d at posteo.de
Sun Sep 3 01:49:21 PDT 2017


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).

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/barebox/attachments/20170903/434420b9/attachment.sig>


More information about the barebox mailing list