Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 238725 - net-ftp/pure-ftpd doesn't report UTF8 in FEAT command if force_passive_ip
Summary: net-ftp/pure-ftpd doesn't report UTF8 in FEAT command if force_passive_ip
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: All All
: High minor
Assignee: Luca Longinotti (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-26 09:14 UTC by Dennis Huang
Modified: 2010-03-19 10:32 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
patch file for ftpd.c (ftpd.c.diff,542 bytes, patch)
2008-09-26 09:38 UTC, Dennis Huang
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Huang 2008-09-26 09:14:21 UTC
pure-ftpd should report UTF8 if ftp client send FEAT command when USE flag charconv is set.

However, pure-ftpd doesn't report UTF8 if "--forcepassiveip" parameter is used for pure-ftpd.

Reproducible: Always

Steps to Reproduce:
1. emerge pure-ftpd with "charconv" USE flag
2. add "--forcepassiveip" into MISC_OTHER in file /etc/conf.d/pure-ftpd
3. connect to ftp server with a ftp client, which will issue FEAT command


Actual Results:  
There is no UTF8 returned as the ftp feature

Expected Results:  
UTF8 should be returned as the ftp feature

emerge --info
Portage 2.1.4.4 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25-gentoo-r7 i686)
=================================================================
System uname: 2.6.25-gentoo-r7 i686 Intel(R) Core(TM)2 Quad CPU Q6700 @ 2.66GHz
Timestamp of tree: Thu, 25 Sep 2008 19:04:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.4.4-r14, 2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium3 -mtune=nocona -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -march=pentium3 -mtune=nocona -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://ftp.twaren.net/Linux/Gentoo http://gentoo.cs.nctu.edu.tw/gentoo/ http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="en_US.UTF-8"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="acl acpi alsa apache2 berkdb cjk cli cracklib crypt cups dri fbcon fortran gdbm gpm iconv imap isdnlog java5 lm_sensors logrotate maildir midi mmx mudflap ncurses nls nptl nptlonly openmp pam pcre perl pppd python readline reflection samba sasl session smp spl srvdir sse ssl tcpd threads unicode vchroot vim-syntax x86 xml xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Dennis Huang 2008-09-26 09:33:06 UTC
In the file src/ftpd.c, function dofeat(), FEAT_UTF8 will be truncated if either disallow_passive or force_passive_ip is true.  I would like to propose to move FEAT_UTF8 in front of both FEAT_ESTP and FEAT_PASV in feat[].

Code snippet as following.
----------------------------------
    char feat[] = FEAT FEAT_DEBUG FEAT_TVFS FEAT_ESTP FEAT_PASV FEAT_ESTA FEAT_TLS FEAT_UTF8;

    if (disallow_passive != 0) {
        feat[sizeof FEAT FEAT_DEBUG FEAT_TVFS FEAT_ESTP] = 0;
    }
#ifndef MINIMAL
    else if (STORAGE_FAMILY(force_passive_ip) != 0) {
        feat[sizeof FEAT FEAT_DEBUG FEAT_TVFS FEAT_ESTP FEAT_PASV] = 0;
    }
#endif
    addreply_noformat(0, feat);
    addreply_noformat(211, "End.");
}

Comment 2 Dennis Huang 2008-09-26 09:38:18 UTC
Created attachment 166466 [details, diff]
patch file for ftpd.c

Proposed patch file
Comment 3 Bernard Cafarelli gentoo-dev 2010-03-19 10:32:14 UTC
Adding net-ftp herd.

Sorry this bug got lost in the bugzilla maze :/

Looking at ftpd.c source in 1.0.28 (which is in stabling process), it seems this is fixed and we can close this bug

If it is not, of course feel free to reopen it!

Marking fixed with 1.0.28, and again sorry for this bug delay