Hi everybody,
I have a very strange problem and hope that somebody is able to help me.
I wrote a simple client and server in C that authenticate each other
mutually using SSL. The SSL connection itself is working and I was able
to exchange messages using SSL_write and SSL_read. The client sends X509
extensions as strings to the server. The server is able to read them and
prints them to stdout. Those extensions contain some special values I
want to check on the server. The general idea is that the client has
some certificates, he wants to check. But those certificates contain
some special values, he cannot check. Therefore he establishes a SSL
connection to a verification server that will verify those values and
send the result to the client.
As I said, I am able to send those values using SSL_write to the server
who is able to read them using SSL_read. In order to verify those
values, the server has to open some local files. In order to do so, I
create the filename:
sprintf(filename,"certs/%s",dirpt->d_name);
This will create a null-terminated string. Even if I never use this
string, just because I created it, SSL_clear will coredump with
*** glibc detected *** ./server: free(): invalid pointer: 0x0806ed48 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7ccfa00]
/lib/libc.so.6(cfree+0x89)[0xb7cd16f9]
/usr/lib/libcrypto.so.0.9.8(CRYPTO_free+0x38)[0xb7e32208]
/usr/lib/libcrypto.so.0.9.8(ASN1_OBJECT_free+0x89)[0xb7eb4479]
/usr/lib/libcrypto.so.0.9.8(ASN1_primitive_free+0xf5)[0xb7ec2cb5]
/usr/lib/libcrypto.so.0.9.8[0xb7ec2f0f]
/usr/lib/libcrypto.so.0.9.8(ASN1_template_free+0x89)[0xb7ec2fe9]
/usr/lib/libcrypto.so.0.9.8[0xb7ec2ef0]
/usr/lib/libcrypto.so.0.9.8(ASN1_item_free+0x13)[0xb7ec3033]
/usr/lib/libcrypto.so.0.9.8(X509_NAME_ENTRY_free+0x27)[0xb7ebc5f7]
/usr/lib/libcrypto.so.0.9.8(sk_pop_free+0x40)[0xb7ea2b90]
/usr/lib/libcrypto.so.0.9.8[0xb7ebc1e6]
/usr/lib/libcrypto.so.0.9.8[0xb7ec2e25]
/usr/lib/libcrypto.so.0.9.8(ASN1_template_free+0x89)[0xb7ec2fe9]
/usr/lib/libcrypto.so.0.9.8[0xb7ec2ef0]
/usr/lib/libcrypto.so.0.9.8(ASN1_template_free+0x89)[0xb7ec2fe9]
/usr/lib/libcrypto.so.0.9.8[0xb7ec2ef0]
/usr/lib/libcrypto.so.0.9.8(ASN1_item_free+0x13)[0xb7ec3033]
/usr/lib/libcrypto.so.0.9.8(X509_free+0x27)[0xb7ebc9c7]
/usr/lib/libssl.so.0.9.8(SSL_SESSION_free+0xda)[0xb7de185a]
/usr/lib/libssl.so.0.9.8(SSL_clear+0x11f)[0xb7ddf77f]
./server[0x804a332]
/lib/libpthread.so.0[0xb7d9f18b]
/lib/libc.so.6(clone+0x5e)[0xb7d2b09e]
I tried to create the filename string also using memcpy. Everything is
fine until this string becomes null-terminated...
I know, that sounds very strange, but does anybody have any idea how to
solve that problem??
Regards
Carolin
--
Carolin Latze
Research Assistant
Department of Computer Science
Boulevard de Pérolles 90
CH-1700 Fribourg
phone: +41 26 300 83 30
homepage: http://diuf.unifr.ch/people/latzec
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager [EMAIL PROTECTED]