Dear Sirs,

As I read OpenSSL 0.9.8b source tree,
I found that i2d_X509() may call x509_name_encode(),
which can modify common data structure (certificate data),
without locking.

Because many SSL I/O function call ssl3_send_server_certificate() in
handshaking phase, I worry that this may severely broke
concurrency.

CPU0:
ssl3_accept =>
ssl3_send_server_certificate =>
ssl3_output_cert_chain (common cert with CPU1) =>
...
=> x509_name_encode
=> BUF_MEM_grow (manipulate common cert)

CPU1:
ssl3_accept =>
ssl3_send_server_certificate =>
ssl3_output_cert_chain (common cert with CPU0) =>
...
=> x509_name_encode
=> BUF_MEM_grow (manipulate common cert)



Is my view right? If so, what's best approach to resolve this issue?

Any comments are welcomed.
Thanks in advance.
--
Yang, Chul-woong
[EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to