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;