120122Fermer
PpHdLe 14/09/2009 à 23:21
Folco (./118) :
J'ai un fichier texte de ~ 7 ko sur la calc, TiLP crash quand j'essaye de le transférer :
[Thread debugging using libthread_db enabled]
[New Thread 0xb5fda6c0 (LWP 3097)]
[KCrash handler]
#6  0xb7f8d424 in __kernel_vsyscall ()
#7  0xb62e7640 in raise () from /lib/i686/cmov/libc.so.6
#8  0xb62e9018 in abort () from /lib/i686/cmov/libc.so.6
#9  0xb632434d in ?? () from /lib/i686/cmov/libc.so.6
#10 0x0000000c in ?? ()
#11 0xbfaa6e90 in ?? ()
#12 0x00000400 in ?? ()
#13 0x00000000 in ?? ()

PedroM fait une erreur "reset".

L'erreur du crash de Tilp vient que ti89_recv_XDP ne vérifie pas les débordements de buffer (ce qu'il recoit vs ce qu'il attend).

Sinon j'expliques:
Martial a fait un "log" STO system\log
qui demande à PedroM de logguer tout ce qui se passe dans le link.
Il a fait un listing de fichiers. Le fichier fait environ 700 octets.
Là il veut le récupérer. Lors de la requète que PedroM envoie sur la taille à tilp du fichier
on a une taille de 1000, puis lors des données, on a 1200.
tilp n'avait alloué qu'un buffer de 1000, d'où débordement et crash (nombres donnés de tête).

En fait, le simple fait de transférer le fichier log, fait que le fichier log est lui même modifié pendant le transfert (car PedroM loggue son transfert) : donc sa taille augmente lorsqu'on veut le transférer. tilp n'est pas robuste et aurait du renvoyer une erreur à l'utilisateur dans ce cas là.

Martial: désactive le link log avant de transférer ce fichier smile