diff options
author | Doug Hogan <doug@cvs.openbsd.org> | 2015-07-19 20:32:19 +0000 |
---|---|---|
committer | Doug Hogan <doug@cvs.openbsd.org> | 2015-07-19 20:32:19 +0000 |
commit | 5c570d90e439a9cb81512b7d088f4c8c5d61ab52 (patch) | |
tree | c9fb34ccd3aba9ce15f19894206336de155a2ac2 | |
parent | 00046c4ded0ae8d60f871fb2c05cf76208648133 (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.c | 4 | ||||
-rw-r--r-- | lib/libssl/d1_lib.c | 5 | ||||
-rw-r--r-- | lib/libssl/ssl_lib.c | 5 | ||||
-rw-r--r-- | lib/libssl/t1_lib.c | 5 |
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); } |