Package: proftpd Version: 1.3.0-19 Severity: normal Tags: patch When run on an IPv6-capable host, this version of proftpd generates an excessive number of syslog messages of the form:
May 5 19:26:22 server proftpd[12345]: server.example.com (client.example.com[::ffff:10.9.8.7]) - error setting IPV6_V6ONLY: Protocol not available An strace reveals the problem to be the following: setsockopt(11, SOL_IP, 0x1a /* IP_??? */, [0], 4) = -1 ENOPROTOOPT (Protocol not available) According to RFC 3493, the correct `level' parameter is IPPROTO_IPV6, not SOL_IP. This does not appear to be critical under Linux, as the default setting for this option is the same as proftpd tries to set. Nonetheless, the attached patch will silence the syslog messages. -- System Information: Debian Release: 4.0 APT prefers stable APT policy: (500, 'stable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.18-4-686 Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Versions of packages proftpd depends on: ii adduser 3.102 Add and remove users and groups ii debconf 1.5.11 Debian configuration management sy ii debianutils 2.17 Miscellaneous utilities specific t ii libacl1 2.2.41-1 Access control list shared library ii libattr1 2.4.32-1 Extended attribute shared library ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries ii libldap2 2.1.30-13.3 OpenLDAP libraries ii libmysqlclient15off 5.0.32-7etch1 mysql database client library ii libncurses5 5.5-5 Shared libraries for terminal hand ii libpam-runtime 0.79-4 Runtime support for the PAM librar ii libpam0g 0.79-4 Pluggable Authentication Modules l ii libpq4 8.1.8-1 PostgreSQL C client library ii libssl0.9.8 0.9.8c-4 SSL shared libraries ii libwrap0 7.6.dbs-13 Wietse Venema's TCP wrappers libra ii netbase 4.29 Basic TCP/IP networking system ii perl 5.8.8-7 Larry Wall's Practical Extraction ii ucf 2.0020 Update Configuration File: preserv ii zlib1g 1:1.2.3-13 compression library - runtime proftpd recommends no packages. -- debconf information excluded
--- src/inet.c.orig 2007-05-05 19:20:54.000000000 -0700 +++ src/inet.c 2007-05-05 19:21:24.000000000 -0700 @@ -295,7 +295,7 @@ if (addr_family == AF_INET6) { int on = 0; -# ifdef SOL_IP +# if 0 && defined(SOL_IP) int level = SOL_IP; # else int level = ipv6_proto;