[amd64] gftp: wersja z ac segfaultuje a spec nie buduje się

Paweł Zaskórski p.zaskorski w wp.pl
Sob, 30 Kwi 2005, 12:46:15 CEST


Witam,

problem dotyczy gftp-2.0.17-1 z amd64/ac. Próba pobrania jakiegokolwiek
pliku z zdalnej maszyny kończy się każdorazowo segmentation fault.
Przykład z końcówki strace:

#v+
geteuid()                               = 500
open("/etc/passwd", O_RDONLY)           = 9
fcntl(9, F_GETFD)                       = 0
fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
fstat(9, {st_mode=S_IFREG|0644, st_size=843, ...}) = 0
mmap(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaaae12a000
read(9, "root:x:0:0:root:/root:/bin/sh\nbi"..., 131072) = 843
close(9)                                = 0
munmap(0x2aaaae12a000, 131072)          = 0
access("/home/users/pawel/.gftp/open_dir.xpm", F_OK) = -1 ENOENT (No
such file or directory)
access("/usr/share/gftp/open_dir.xpm", F_OK) = 0
open("/usr/share/gftp/open_dir.xpm", O_RDONLY) = 9
fstat(9, {st_mode=S_IFREG|0644, st_size=885, ...}) = 0
mmap(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaaae12a000
read(9, "/* XPM */\nstatic char * open_dir"..., 131072) = 885
lseek(9, 0, SEEK_SET)                   = 0
read(9, "/* XPM */\nstatic char * open_dir"..., 131072) = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
lseek(9, 885, SEEK_SET)                 = 885
close(9)                                = 0
munmap(0x2aaaae12a000, 131072)          = 0
clone(child_stack=0x40800270,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|
CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED,
parent_tidptr=0x408009f0, tls=0x40800960, child_tidptr=0x408009f0) = 18596
write(6, "5\30\4\0\240\4 \2H\0\0\0\20\0\20\0\232\4\5\0\241\4 \2\240"...,
3264) = 3264
ioctl(6, FIONREAD, [64])                = 0
read(6, "\34\0\f`\3\0 \2\347\0\0\0\317i\3266\0\0 \2\0\0\0\0\10\0"...,
64) = 64
poll([{fd=7, events=POLLIN}, {fd=6, events=POLLIN, revents=POLLIN}], 2,
0) = 1
ioctl(6, FIONREAD, [32])                = 0
read(6, "\34\0\r`\3\0 \0024\1\0\0\331i\3266\0\0 \2\0\0\0\0 \0\0"..., 32)
= 32
ioctl(6, FIONREAD, [0])                 = 0
ioctl(6, FIONREAD, [0])                 = 0
poll([{fd=7, events=POLLIN}, {fd=6, events=POLLIN}], 2, 0) = 0
write(6, "\f\30\4\0k\0 \2@\0\0\0\0\0\0\0\10\4\2\0k\0 \2\f\4\4\0p"...,
1008) = 1008
ioctl(6, FIONREAD, [96])                = 0
read(6, "\26\0\16`k\0 \2k\0 \2u\0 \2\0\0\204\2\33\4\7\0\0\0\0\3"..., 96)
= 96
poll([{fd=7, events=POLLIN}, {fd=6, events=POLLIN}], 2, 0) = 0
ioctl(6, FIONREAD, [0])                 = 0
ioctl(6, FIONREAD, [0])                 = 0
poll([{fd=7, events=POLLIN}, {fd=6, events=POLLIN}], 2, 483) = -1 EINTR
(Interrupted system call)
+++ killed by SIGSEGV +++
#v-

Proces jest całkowicie powtarzalny - gftp można używać, ale tylko do
przglądania zawartości serwera.

W związku z czym postanowiłem zbudować sobie wersję 2.0.18 wprost z
CVSu. Niestety proces kończy się następującym błędem:

#v+
+ rm -f missing aclocal.m4 acinclude.m4
+ aclocal
aclocal:configure.in:83: warning: macro `AM_PATH_GLIB' not found in library
aclocal:configure.in:201: warning: macro `AM_PATH_GTK' not found in library
+ autoheader
+ autoconf
configure.in:83: error: possibly undefined macro: AM_PATH_GLIB
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.in:201: error: possibly undefined macro: AM_PATH_GTK
błąd: Błędny status wyjścia z /var/tmp/rpm-tmp.78426 (%build)


Błędy budowania RPM-a:
    Błędny status wyjścia z /var/tmp/rpm-tmp.78426 (%build)
Error: package build failed. (no more info)
$ rpm -q gtk+2-devel glib2-devel autoconf automake
gtk+2-devel-2.6.7-1
glib2-devel-2.6.4-1
autoconf-2.59-3
automake-1.9.4-2
#v-

Mógłbym prosić o kilka słów wyjaśnień? Coś robię źle, czy problem
występuje tylko na mojej maszynie?

Pozdrawiam i dziękuję za uwagę!
-- 
Paweł M. Zaskórski
jid: pmz w jabberpl.org




Więcej informacji o liście dyskusyjnej pld-devel-pl