Salut a tous,
j'ai un soucis qui m'empeche de derouler des patchs sur mon noyau
(ainsi que tout autre type de patch). La commande "patch" fait
core-dump.
Un peu de contexte: RedHat 7.1, noyau 2.4.9-21 (il me manque un
update), glibc-2.2.4-19.3 (idem). J'ai re-genere ma commande "patch"
pour etre sur d'utiliser les bonnes libc sur ma machine (et pas des
liens de compatibilite).
Mon /etc/ld.so.conf contient ce qui suit:
/usr/X11R6/lib
/usr/kerberos/lib
/usr/i486-linux-libc5/lib
/usr/i386-glibc21-linux/lib
/usr/lib/sane
/usr/lib/qt-2.3.0/lib
/usr/lib
Et la commande patch va bien chercher les bonnes librairies:
ldd -v /usr/bin/patch
libc.so.6 => /lib/i686/libc.so.6 (0x40026000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Version information:
/usr/bin/patch:
libc.so.6 (GLIBC_2.1.3) => /lib/i686/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/i686/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/i686/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/i686/libc.so.6
/lib/i686/libc.so.6:
ld-linux.so.2 (GLIBC_2.1.1) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.2) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
L'execution sous gdb donne une erreur dans le sprintf dans le
buffer-cache:
(gdb) run < ../patch-2.4.17
Starting program: /usr/bin/patch < ../patch-2.4.17
Program received signal SIGSEGV, Segmentation fault.
0x4007dabc in _IO_vfprintf (s=0x4015a860, format=0x8056e04 "%s: ", ap=0xbfffe2ac) at ../sysdeps/i386/i486/bits/string.h:530
530 ../sysdeps/i386/i486/bits/string.h: No such file or directory.
in ../sysdeps/i386/i486/bits/string.h
(gdb)
Ce point est confirme par l'execution sous strace:
strlen(0x0805a140, 0x0805a140, 1, 0x40017428, 5) = 1
strncmp("cvs", "'", 1) = 60
strncmp("vs", "'", 1) = 79
strncmp("s", "'", 1) = 76
fflush(0x4015a6e0) = 0
fprintf(0x4015a860, "%s: ", "EOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOF"... <unfinished ...>
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
Mais je n'arrive pas a faire le point pour ce qui est des dernieres
erreurs sous strace (qui n'ont peut-etre pas de rapport):
gettimeofday({1019857218, 378300}, NULL) = 0
getpid() = 1647
lstat64("/var/tmp/fxk/poU2k8tS", 0xbfffd870) = -1 ENOENT (No such file or directory)
getpid() = 1647
lstat64("/var/tmp/fxk/piv4TxN8", 0xbfffd870) = -1 ENOENT (No such file or directory)
getpid() = 1647
lstat64("/var/tmp/fxk/prGtRX6o", 0xbfffd870) = -1 ENOENT (No such file or directory)
getpid() = 1647
lstat64("/var/tmp/fxk/ppTtdoqF", 0xbfffd870) = -1 ENOENT (No such file or directory)
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
qq'un pourrait-il me donner un coup de main, cad:
- tout m'expliquer :-)
- executer sous strace & ltrace la meme commande & me dire quel est le
resultat "normal"
Marci d'avance
A+
--
François-Xavier 'FiX' KOWALSKI