summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Hogan <doug@cvs.openbsd.org>2015-07-19 20:32:19 +0000
committerDoug Hogan <doug@cvs.openbsd.org>2015-07-19 20:32:19 +0000
commit5c570d90e439a9cb81512b7d088f4c8c5d61ab52 (patch)
treec9fb34ccd3aba9ce15f19894206336de155a2ac2
parent00046c4ded0ae8d60f871fb2c05cf76208648133 (diff)
Allow *_free() functions in libssl to handle NULL input.
This mimics free()'s behavior which makes error handling simpler. ok bcook@ miod@
-rw-r--r--lib/libssl/d1_both.c4
-rw-r--r--lib/libssl/d1_lib.c5
-rw-r--r--lib/libssl/ssl_lib.c5
-rw-r--r--lib/libssl/t1_lib.c5
4 files changed, 15 insertions, 4 deletions
diff --git a/lib/libssl/d1_both.c b/lib/libssl/d1_both.c
index 5c93af8bd91..b479c61322e 100644
--- a/lib/libssl/d1_both.c
+++ b/lib/libssl/d1_both.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: d1_both.c,v 1.33 2015/07/18 23:00:23 doug Exp $ */
+/* $OpenBSD: d1_both.c,v 1.34 2015/07/19 20:32:18 doug Exp $ */
/*
* DTLS implementation written by Nagendra Modadugu
* (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
@@ -209,6 +209,8 @@ dtls1_hm_fragment_new(unsigned long frag_len, int reassembly)
static void
dtls1_hm_fragment_free(hm_fragment *frag)
{
+ if (frag == NULL)
+ return;
if (frag->msg_header.is_ccs) {
EVP_CIPHER_CTX_free(
diff --git a/lib/libssl/d1_lib.c b/lib/libssl/d1_lib.c
index dd789ccc702..b269efe4690 100644
--- a/lib/libssl/d1_lib.c
+++ b/lib/libssl/d1_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: d1_lib.c,v 1.28 2015/03/19 14:00:22 tedu Exp $ */
+/* $OpenBSD: d1_lib.c,v 1.29 2015/07/19 20:32:18 doug Exp $ */
/*
* DTLS implementation written by Nagendra Modadugu
* (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
@@ -190,6 +190,9 @@ dtls1_clear_queues(SSL *s)
void
dtls1_free(SSL *s)
{
+ if (s == NULL)
+ return;
+
ssl3_free(s);
dtls1_clear_queues(s);
diff --git a/lib/libssl/ssl_lib.c b/lib/libssl/ssl_lib.c
index 1dd518d0b83..629ad035542 100644
--- a/lib/libssl/ssl_lib.c
+++ b/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_lib.c,v 1.104 2015/06/28 00:08:27 doug Exp $ */
+/* $OpenBSD: ssl_lib.c,v 1.105 2015/07/19 20:32:18 doug Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -2825,6 +2825,9 @@ ssl_init_wbio_buffer(SSL *s, int push)
void
ssl_free_wbio_buffer(SSL *s)
{
+ if (s == NULL)
+ return;
+
if (s->bbio == NULL)
return;
diff --git a/lib/libssl/t1_lib.c b/lib/libssl/t1_lib.c
index b0f0de3bd8b..70823bf8e71 100644
--- a/lib/libssl/t1_lib.c
+++ b/lib/libssl/t1_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: t1_lib.c,v 1.79 2015/07/17 15:50:37 doug Exp $ */
+/* $OpenBSD: t1_lib.c,v 1.80 2015/07/19 20:32:18 doug Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -198,6 +198,9 @@ tls1_new(SSL *s)
void
tls1_free(SSL *s)
{
+ if (s == NULL)
+ return;
+
free(s->tlsext_session_ticket);
ssl3_free(s);
}