[sr #107775] GnuTLS 3.0.0 causes segfault
anonymous
INVALID.NOREPLY at gnu.org
Mon Aug 22 09:56:44 CEST 2011
Follow-up Comment #7, sr #107775 (project gnutls):
Hi,
I can reproduce this problem with mcabber. strace says:
connect(3, {sa_family=AF_INET, sin_port=htons(5223),
sin_addr=inet_addr("217.10.10.194")}, 16) = -1 EINPROGRESS (Operation now in
progress)
[...]
poll([{fd=3, events=POLLOUT}, {fd=0, events=POLLIN|POLLPRI}], 2, -1) = 1
([{fd=3, revents=POLLOUT}])
open("/etc/ssl/certs/ca-certificates.crt", O_RDONLY) = 5
[...]
writev(3, [{"263 2761 27233NQ373C370+25361334F 321y!6#5|1}34"..., 195}], 1)
= 195
recv(3, "2631 001", 5, 0) = 5
recv(3, "2 -31NQ373C374211v347276y(r30222236v244K23321730535;372252264"...,
49, 0) = 49
recv(3, "263123b", 5, 0) = 5
recv(3, "v 23^ 23[ 6 0502026 0102023351240321223 2673610r6t"..., 4962, 0) =
1389
recv(3,
"16214376217<|303}+W'1320A332256)241315h2325726031250|305366212365203352"...,
3573, 0) = 1448
recv(3,
"X>351224+221P20733326^3262143143671720fRN32026a345345nl27727307rF"..., 2125,
0) = 1448
recv(3, "crl046t`206H1206370B1104'26%http://www.c"..., 677, 0) = 677
recv(3, "2631 4", 5, 0) = 5
recv(3, "16 ", 4, 0) = 4
[...]
writev(3, [{"", 4294967269}, {"", 4294967269},
{"2631 360sI-31533262$5343222402345201332306210?303224215266252`|36R"...,
245}], 3) = -1 EINVAL (Invalid argument)
shutdown(3, SHUT_RDWR) = 0
close(3) = 0
The length argument to writev() is (unsigned int)-26.
Valgrind only has complaints about libidn (read of size 4 with offset 4 in an
allocation of size 7). This can't cause any corruption. Then comes the
writev():
==17779== Syscall param writev(vector[...]) points to unaddressable byte(s)
==17779== at 0x43C1ADE: writev (in /lib/libc-2.14.so)
==17779== Address 0x6dd6e67 is 0 bytes after a block of size 2,895 alloc'd
==17779== at 0x4026416: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==17779== by 0x44F271F: ??? (in /usr/lib/libgnutls.so.28.0.1)
==17779== by 0x44EE7CA: _gnutls_send_int (in /usr/lib/libgnutls.so.28.0.1)
==17779== by 0x44F47E6: ??? (in /usr/lib/libgnutls.so.28.0.1)
==17779== by 0x44F668C: ??? (in /usr/lib/libgnutls.so.28.0.1)
==17779== by 0x44F6B2C: ??? (in /usr/lib/libgnutls.so.28.0.1)
==17779== by 0x44F8C4F: ??? (in /usr/lib/libgnutls.so.28.0.1)
==17779== by 0x44FA558: gnutls_handshake (in /usr/lib/libgnutls.so.28.0.1)
==17779== by 0x4055427: ??? (in /usr/lib/libloudmouth-1.so.0.1.0)
==17779== by 0x4056F70: ??? (in /usr/lib/libloudmouth-1.so.0.1.0)
==17779== by 0x40576F8: ??? (in /usr/lib/libloudmouth-1.so.0.1.0)
==17779== by 0x40580D7: ??? (in /usr/lib/libloudmouth-1.so.0.1.0)
All the packages used are archlinux x86 stock ones. I'd be happy about any
hints on how I can debug this further.
P.S.: How do I attach files?
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/support/?107775>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
More information about the Gnutls-devel
mailing list