atftpd require UDPv4 socket
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
atftp (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
attfpd(source package: atfp) on Ubuntu 24.04 listen by atftpd.socket.
atfptd.socket bind UDPv6/IPv6. But this socket accept IPv4 and IPv6 both packets.
atftpd process require UDPv4/IPv4 listen socket.
# My workaround
atftpd.socket listen UDPv4/IPv4 socket.
/etc/systemd/
[Socket]
ListenDatagram=
ListenDatagram=
# Package Infomation / System Infomation
root@bootserver:~# lsb_release -rd
No LSB modules are available.
Description: Ubuntu 24.04 LTS
Release: 24.04
root@bootserver:~# apt-cache policy atftpd
atftpd:
Installed: 0.8.0-3ubuntu3
Candidate: 0.8.0-3ubuntu3
Version table:
*** 0.8.0-3ubuntu3 500
500 http://
100 /var/lib/
# Errorlog
This DEBUG log indicates that there is a problem with this code https:/
May 11 01:24:53 bootserver systemd[1]: Started atftpd.service - Advanced TFTP Server.
May 11 01:24:53 bootserver atftpd[4551]: Advanced Trivial FTP server started (0.8.0)
May 11 01:24:53 bootserver atftpd[4551]: started by inetd or socket activated
May 11 01:24:53 bootserver atftpd[4551]: logging level: 7
May 11 01:24:53 bootserver atftpd[4551]: directory: /srv/tftp/
May 11 01:24:53 bootserver atftpd[4551]: user: nobody.nogroup
May 11 01:24:53 bootserver atftpd[4551]: log file: syslog
May 11 01:24:53 bootserver atftpd[4551]: not forcing to listen on local interfaces.
May 11 01:24:53 bootserver atftpd[4551]: server timeout: 300
May 11 01:24:53 bootserver atftpd[4551]: tftp retry timeout: 5
May 11 01:24:53 bootserver atftpd[4551]: maximum number of thread: 100
May 11 01:24:53 bootserver atftpd[4551]: option timeout: enabled
May 11 01:24:53 bootserver atftpd[4551]: option tzise: enabled
May 11 01:24:53 bootserver atftpd[4551]: option blksize: enabled
May 11 01:24:53 bootserver atftpd[4551]: option windowsize: enabled
May 11 01:24:53 bootserver atftpd[4551]: option multicast: enabled
May 11 01:24:53 bootserver atftpd[4551]: address range: 239.255.0.0-255
May 11 01:24:53 bootserver atftpd[4551]: port range: 1758
May 11 01:25:16 bootserver atftpd[4551]: socket may listen on any address, including broadcast
May 11 01:25:16 bootserver atftpd[4551]: bind: Cannot assign requested address
May 11 01:25:16 bootserver atftpd[4551]: Creating new socket: :::0
May 11 01:25:16 bootserver atftpd[4551]: Server thread exiting
May 11 01:26:36 bootserver atftpd[4551]: SIGTERM received, stopping threads and exiting.
May 11 01:26:36 bootserver atftpd[4551]: tftpd.c: 468: select: Interrupted system call
May 11 01:26:36 bootserver systemd[1]: Stopping atftpd.service - Advanced TFTP Server...
May 11 01:26:36 bootserver atftpd[4551]: atftpd terminating after 300 seconds
May 11 01:26:36 bootserver systemd[1]: atftpd.service: Deactivated successfully.
# GDB debuging
(gdb) n
734 in tftpd.c
(gdb) p to
$6 = {ss_family = 10, __ss_padding = "\000\000\
__ss_align = 0}
(gdb) p *(struct sockaddr_in*)&to
$8 = {sin_family = 10, sin_port = 0, sin_addr = {s_addr = 31006}, sin_zero = "\000\000\
(gdb) p *(struct sockaddr_in6*)&to
$9 = {sin6_family = 10, sin6_port = 0, sin6_flowinfo = 31006, sin6_addr = {__in6_u = {
__u6_addr8 = "\000\000\
__u6_addr32 = {0, 0, 2, 0}}}, sin6_scope_id = 0}
(gdb) quit
root@bootserver:~# lsof -p 7298
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
in.tftpd 7298 atftpd cwd DIR 252,1 4096 2 /
in.tftpd 7298 atftpd rtd DIR 252,1 4096 2 /
in.tftpd 7298 atftpd txt REG 252,1 81040 3014777 /usr/sbin/atftpd
in.tftpd 7298 atftpd mem REG 252,1 2125328 3020752 /usr/lib/
in.tftpd 7298 atftpd mem REG 252,1 182944 3026891 /usr/lib/
in.tftpd 7298 atftpd mem REG 252,1 625344 3027015 /usr/lib/
in.tftpd 7298 atftpd mem REG 252,1 44064 3047322 /usr/lib/
in.tftpd 7298 atftpd mem REG 252,1 236616 3020748 /usr/lib/
in.tftpd 7298 atftpd 0u IPv6 63411 0t0 UDP *:tftp
in.tftpd 7298 atftpd 1u IPv6 63411 0t0 UDP *:tftp
in.tftpd 7298 atftpd 2u IPv6 63411 0t0 UDP *:tftp
in.tftpd 7298 atftpd 3u unix 0xffff9d588ed85800 0t0 63415 type=DGRAM (CONNECTED)
in.tftpd 7298 atftpd 4u sock 0,8 0t0 15261 protocol: UDPv6