summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-06-13 20:46:30 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-06-13 20:46:30 +0000
commit21b25ed4b83334b0296aa5b33a250f1f7488de4c (patch)
tree79e1de92a8f63701e4c4f7d2aa44c552d8879626
parent58f41a926a73bd5c49beb91991b486d4e0b544f5 (diff)
PR: 1952
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de> Reviewed by: steve@openssl.org ECDH negotiation bug.
-rw-r--r--crypto/rand/randfile.c4
-rw-r--r--ssl/s3_srvr.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c
index 4723feecaf..7dc4ceae8e 100644
--- a/crypto/rand/randfile.c
+++ b/crypto/rand/randfile.c
@@ -177,8 +177,8 @@ int RAND_write_file(const char *file)
i=stat(file,&sb);
if (i != -1) {
-#if defined(S_IFBLK) && defined(S_IFCHR)
- if (sb.st_mode & (S_IFBLK | S_IFCHR)) {
+#if defined(S_ISBLK) && defined(S_ISCHR)
+ if (S_ISBLK(sb.st_mode) || S_ISCHR(sb.st_mode)) {
/* this file is a device. we don't write back to it.
* we "succeed" on the assumption this is some sort
* of random device. Otherwise attempting to write to
diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
index ffa031f61e..44065d7e89 100644
--- a/ssl/s3_srvr.c
+++ b/ssl/s3_srvr.c
@@ -2388,6 +2388,8 @@ int ssl3_get_client_key_exchange(SSL *s)
EC_POINT_free(clnt_ecpoint);
EC_KEY_free(srvr_ecdh);
BN_CTX_free(bn_ctx);
+ EC_KEY_free(s->s3->tmp.ecdh);
+ s->s3->tmp.ecdh = NULL;
/* Compute the master secret */
s->session->master_key_length = s->method->ssl3_enc-> \