I updated to openssl 1.0.1k from 1.0.0d and I get a NULL pointer
dereference when I call SSL_get_certificate on a valid SSL object.

Backtrace:

ssl_set_cert_masks:1845
ssl_get_server_send_pkey:2117
ssl_get_server_send_cert:2175
SSL_get_certificate:2605

ssl_get_server_send_pkey calls ssl_set_cert_masks(c, s->s3->tmp.new_cipher)
and s->s3->tmp.new_cipher is NULL.

SSL_get_certificate has changed from:

  if (s->cert != NULL)
      return(s->cert->key->x509);
  else
      return(NULL);

to:

  if (s->server)
      return(ssl_get_server_send_cert(s));
  else if (s->cert != NULL)
      return(s->cert->key->x509);
  else
      return(NULL);

Apologies if I'm missing something obvious. I can come up with some simple
code that reproduces this if needed.


Cheers,
Bogdan

Reply via email to