du command causes lftp segfault when it tries to print size of file/dir with long pathname. Reproducible: Always Steps to Reproduce: 1. create file (not empty) with long name, say bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 2. share it on ftp server 3. try 'du bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb' in lftp 4. lftp segfaults (checked on remote serwer and localhost) 5. it also happens if path is very long e.g. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/bbbbbbbbbb Actual Results: gdb bt full #0 0x000000327e476c10 in strlen () from /lib/libc.so.6 No symbol table info available. #1 0x000000327e445e10 in vfprintf () from /lib/libc.so.6 No symbol table info available. #2 0x000000327e4697fa in vsnprintf () from /lib/libc.so.6 No symbol table info available. #3 0x00002b9562760c17 in Buffer::vFormat (this=0x6139d0, f=0x2b956251ebc8 "%s\t%s\n", v=0x7fff485e1eb0) at buffer.cc:158 tmp = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fff485e1f90, reg_save_area = 0x7fff485e1ed0}} res = <value optimized out> size = 1649535944 #4 0x00002b9562760cdc in Buffer::Format (this=0x9, f=0x2b956251ebc8 "%s\t%s\n") at buffer.cc:147 v = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fff485e1f90, reg_save_area = 0x7fff485e1ed0}} #5 0x00002b9562514bc0 in FinderJob_Du::print_size (this=0x6694e0, n_blocks=<value optimized out>, string=0x687d90 'b' <repeats 64 times>) at FindJobDu.cc:177 buffer = "\n\000\000\000\000\000\000\0008zf\000\000\000\000\000\001\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000=É\r\215\000\000\000\000L\216\000~2\000\000\000\002\000\000\000\000\000\000\000\234SNb\225+\000\000Zìm\020\000\000\000\000L\216\000~=\000\000\000$74\002\000\000\000\000\000 ^Hÿ\177\000\000h!^Hÿ\177\000\000ø[Nb\225+", '\0' <repeats 18 times>, "ØPLb\225+\000\000rþNb\225+\000\000p³Nb\225+\000\000H\201Nb\225+\000\000\000\000\000\000\001\000\000\000\216\001\000\000\001\000\000\0008tsb\225+\000\0000TLb\225+\000\000 !^Hÿ\177\000\000P!^Hÿ\177\000\000"... #6 0x00002b9562514d1b in FinderJob_Du::ProcessFile (this=0x6694e0, d=<value optimized out>, fi=0x688170) at FindJobDu.cc:141 add = <value optimized out> #7 0x00002b95625133c1 in FinderJob::Do (this=0x6694e0) at FindJob.cc:144 m = 1 pres = <value optimized out> j = <value optimized out> #8 0x00002b956274c46e in SMTask::Schedule () at SMTask.cc:226 scan = (SMTask *) 0x6694e0 timer_timeout = <value optimized out> res = 0 #9 0x00002b95624fc9b2 in Job::WaitDone (this=0x6136d0) at Job.cc:522 No locals. #10 0x0000000000405be8 in main (argc=1, argv=0x7fff485e2418) at lftp.cc:466 home = <value optimized out> exit_code = <value optimized out> #11 0x000000327e41e1f4 in __libc_start_main () from /lib/libc.so.6 No symbol table info available. #12 0x0000000000405239 in _start () No symbol table info available. Portage 2.1.4_rc9 (default-linux/amd64/2007.0, gcc-4.2.2, glibc-2.7-r1, 2.6.23-tuxonice-r4 x86_64) ================================================================= System uname: 2.6.23-tuxonice-r4 x86_64 Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz Timestamp of tree: Wed, 12 Dec 2007 17:16:01 +0000 app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.1.3 dev-lang/python: 2.5.1-r4 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23-r2 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe -ggdb" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php4/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php4/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php4/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=nocona -O2 -pipe -ggdb" DISTDIR="/usr/portage.distfiles" FEATURES="distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms splitdebug strict test unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="http://gentoo.prz.rzeszow.pl ftp://gentoo.po.opole.pl ftp://pandemonium.tiscali.de/pub/gentoo/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/" LANG="pl_PL.UTF-8" LC_ALL="pl_PL.UTF-8" LINGUAS="pl" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/portage/local/layman/custom-kernels /usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X aac alsa amd64 apache2 bash-completion berkdb bitmap-fonts cairo cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread encode flac gdbm gif gnutls gpm gstreamer gtk hal iconv java jpeg kdeenablefinal kdehiddenvisibility lcms logrotate mad midi mmx mp3 mpeg mudflap musepack mysql ncurses nls nptl nptlonly nsplugin ogg opengl openmp oss pam pcre pdf perl php png postgres python quicktime readline sasl sdl session slang spell spl sse sse2 ssl svg tcpd test threads truetype truetype-fonts type1-fonts unicode vim-syntax vorbis xcomposite xml xorg xvid zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon 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 deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif 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" LINGUAS="pl" USERLAND="GNU" VIDEO_CARDS="i810 i830 i915 vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 139942 [details, diff] patch from Alexander V. Lukyanov
Fixed in -r1, thanks