diff options
author | tedu <> | 2014-04-16 21:16:33 +0000 |
---|---|---|
committer | tedu <> | 2014-04-16 21:16:33 +0000 |
commit | 9a1c8100cb8cb117eddb7af93d839f1158fba375 (patch) | |
tree | f3c61e57b00dc4a8b4caebe6fa51b464b6b17779 /src | |
parent | e7892d59587f55067ca2e2bc6fa26cf4bcd6c084 (diff) | |
download | openbsd-9a1c8100cb8cb117eddb7af93d839f1158fba375.tar.gz openbsd-9a1c8100cb8cb117eddb7af93d839f1158fba375.tar.bz2 openbsd-9a1c8100cb8cb117eddb7af93d839f1158fba375.zip |
TANSTAAFL - delete the buf freelist code. if you need a better malloc, get
a better malloc. ok beck deraadt
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libssl/s3_both.c | 78 | ||||
-rw-r--r-- | src/lib/libssl/src/ssl/s3_both.c | 78 | ||||
-rw-r--r-- | src/lib/libssl/src/ssl/ssl.h | 6 | ||||
-rw-r--r-- | src/lib/libssl/src/ssl/ssl_lib.c | 37 | ||||
-rw-r--r-- | src/lib/libssl/src/ssl/ssl_locl.h | 12 | ||||
-rw-r--r-- | src/lib/libssl/ssl.h | 6 | ||||
-rw-r--r-- | src/lib/libssl/ssl/Makefile | 3 | ||||
-rw-r--r-- | src/lib/libssl/ssl_lib.c | 37 | ||||
-rw-r--r-- | src/lib/libssl/ssl_locl.h | 12 |
9 files changed, 9 insertions, 260 deletions
diff --git a/src/lib/libssl/s3_both.c b/src/lib/libssl/s3_both.c index b2fd5c6f80..5642e6c175 100644 --- a/src/lib/libssl/s3_both.c +++ b/src/lib/libssl/s3_both.c | |||
@@ -624,76 +624,6 @@ ssl_verify_alarm_type(long type) | |||
624 | return (al); | 624 | return (al); |
625 | } | 625 | } |
626 | 626 | ||
627 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
628 | /* On some platforms, malloc() performance is bad enough that you can't just | ||
629 | * free() and malloc() buffers all the time, so we need to use freelists from | ||
630 | * unused buffers. Currently, each freelist holds memory chunks of only a | ||
631 | * given size (list->chunklen); other sized chunks are freed and malloced. | ||
632 | * This doesn't help much if you're using many different SSL option settings | ||
633 | * with a given context. (The options affecting buffer size are | ||
634 | * max_send_fragment, read buffer vs write buffer, | ||
635 | * SSL_OP_MICROSOFT_BIG_WRITE_BUFFER, SSL_OP_NO_COMPRESSION, and | ||
636 | * SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS.) Using a separate freelist for every | ||
637 | * possible size is not an option, since max_send_fragment can take on many | ||
638 | * different values. | ||
639 | * | ||
640 | * If you are on a platform with a slow malloc(), and you're using SSL | ||
641 | * connections with many different settings for these options, and you need to | ||
642 | * use the SSL_MOD_RELEASE_BUFFERS feature, you have a few options: | ||
643 | * - Link against a faster malloc implementation. | ||
644 | * - Use a separate SSL_CTX for each option set. | ||
645 | * - Improve this code. | ||
646 | */ | ||
647 | static void * | ||
648 | freelist_extract(SSL_CTX *ctx, int for_read, int sz) | ||
649 | { | ||
650 | SSL3_BUF_FREELIST *list; | ||
651 | SSL3_BUF_FREELIST_ENTRY *ent = NULL; | ||
652 | void *result = NULL; | ||
653 | |||
654 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); | ||
655 | list = for_read ? ctx->rbuf_freelist : ctx->wbuf_freelist; | ||
656 | if (list != NULL && sz == (int)list->chunklen) | ||
657 | ent = list->head; | ||
658 | if (ent != NULL) { | ||
659 | list->head = ent->next; | ||
660 | result = ent; | ||
661 | if (--list->len == 0) | ||
662 | list->chunklen = 0; | ||
663 | } | ||
664 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); | ||
665 | if (!result) | ||
666 | result = OPENSSL_malloc(sz); | ||
667 | return result; | ||
668 | } | ||
669 | |||
670 | static void | ||
671 | freelist_insert(SSL_CTX *ctx, int for_read, size_t sz, void *mem) | ||
672 | { | ||
673 | SSL3_BUF_FREELIST *list; | ||
674 | SSL3_BUF_FREELIST_ENTRY *ent; | ||
675 | |||
676 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); | ||
677 | list = for_read ? ctx->rbuf_freelist : ctx->wbuf_freelist; | ||
678 | if (list != NULL && (sz == list->chunklen || list->chunklen == 0) && | ||
679 | list->len < ctx->freelist_max_len && sz >= sizeof(*ent)) { | ||
680 | list->chunklen = sz; | ||
681 | ent = mem; | ||
682 | ent->next = list->head; | ||
683 | list->head = ent; | ||
684 | ++list->len; | ||
685 | mem = NULL; | ||
686 | } | ||
687 | |||
688 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); | ||
689 | if (mem) | ||
690 | OPENSSL_free(mem); | ||
691 | } | ||
692 | #else | ||
693 | #define freelist_extract(c,fr,sz) OPENSSL_malloc(sz) | ||
694 | #define freelist_insert(c,fr,sz,m) OPENSSL_free(m) | ||
695 | #endif | ||
696 | |||
697 | int | 627 | int |
698 | ssl3_setup_read_buffer(SSL *s) | 628 | ssl3_setup_read_buffer(SSL *s) |
699 | { | 629 | { |
@@ -720,7 +650,7 @@ ssl3_setup_read_buffer(SSL *s) | |||
720 | if (!(s->options & SSL_OP_NO_COMPRESSION)) | 650 | if (!(s->options & SSL_OP_NO_COMPRESSION)) |
721 | len += SSL3_RT_MAX_COMPRESSED_OVERHEAD; | 651 | len += SSL3_RT_MAX_COMPRESSED_OVERHEAD; |
722 | #endif | 652 | #endif |
723 | if ((p = freelist_extract(s->ctx, 1, len)) == NULL) | 653 | if ((p = OPENSSL_malloc(len)) == NULL) |
724 | goto err; | 654 | goto err; |
725 | s->s3->rbuf.buf = p; | 655 | s->s3->rbuf.buf = p; |
726 | s->s3->rbuf.len = len; | 656 | s->s3->rbuf.len = len; |
@@ -760,7 +690,7 @@ ssl3_setup_write_buffer(SSL *s) | |||
760 | len += headerlen + align + | 690 | len += headerlen + align + |
761 | SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD; | 691 | SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD; |
762 | 692 | ||
763 | if ((p = freelist_extract(s->ctx, 0, len)) == NULL) | 693 | if ((p = OPENSSL_malloc(len)) == NULL) |
764 | goto err; | 694 | goto err; |
765 | s->s3->wbuf.buf = p; | 695 | s->s3->wbuf.buf = p; |
766 | s->s3->wbuf.len = len; | 696 | s->s3->wbuf.len = len; |
@@ -788,7 +718,7 @@ int | |||
788 | ssl3_release_write_buffer(SSL *s) | 718 | ssl3_release_write_buffer(SSL *s) |
789 | { | 719 | { |
790 | if (s->s3->wbuf.buf != NULL) { | 720 | if (s->s3->wbuf.buf != NULL) { |
791 | freelist_insert(s->ctx, 0, s->s3->wbuf.len, s->s3->wbuf.buf); | 721 | OPENSSL_free(s->s3->wbuf.buf); |
792 | s->s3->wbuf.buf = NULL; | 722 | s->s3->wbuf.buf = NULL; |
793 | } | 723 | } |
794 | return 1; | 724 | return 1; |
@@ -798,7 +728,7 @@ int | |||
798 | ssl3_release_read_buffer(SSL *s) | 728 | ssl3_release_read_buffer(SSL *s) |
799 | { | 729 | { |
800 | if (s->s3->rbuf.buf != NULL) { | 730 | if (s->s3->rbuf.buf != NULL) { |
801 | freelist_insert(s->ctx, 1, s->s3->rbuf.len, s->s3->rbuf.buf); | 731 | OPENSSL_free(s->s3->rbuf.buf); |
802 | s->s3->rbuf.buf = NULL; | 732 | s->s3->rbuf.buf = NULL; |
803 | } | 733 | } |
804 | return 1; | 734 | return 1; |
diff --git a/src/lib/libssl/src/ssl/s3_both.c b/src/lib/libssl/src/ssl/s3_both.c index b2fd5c6f80..5642e6c175 100644 --- a/src/lib/libssl/src/ssl/s3_both.c +++ b/src/lib/libssl/src/ssl/s3_both.c | |||
@@ -624,76 +624,6 @@ ssl_verify_alarm_type(long type) | |||
624 | return (al); | 624 | return (al); |
625 | } | 625 | } |
626 | 626 | ||
627 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
628 | /* On some platforms, malloc() performance is bad enough that you can't just | ||
629 | * free() and malloc() buffers all the time, so we need to use freelists from | ||
630 | * unused buffers. Currently, each freelist holds memory chunks of only a | ||
631 | * given size (list->chunklen); other sized chunks are freed and malloced. | ||
632 | * This doesn't help much if you're using many different SSL option settings | ||
633 | * with a given context. (The options affecting buffer size are | ||
634 | * max_send_fragment, read buffer vs write buffer, | ||
635 | * SSL_OP_MICROSOFT_BIG_WRITE_BUFFER, SSL_OP_NO_COMPRESSION, and | ||
636 | * SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS.) Using a separate freelist for every | ||
637 | * possible size is not an option, since max_send_fragment can take on many | ||
638 | * different values. | ||
639 | * | ||
640 | * If you are on a platform with a slow malloc(), and you're using SSL | ||
641 | * connections with many different settings for these options, and you need to | ||
642 | * use the SSL_MOD_RELEASE_BUFFERS feature, you have a few options: | ||
643 | * - Link against a faster malloc implementation. | ||
644 | * - Use a separate SSL_CTX for each option set. | ||
645 | * - Improve this code. | ||
646 | */ | ||
647 | static void * | ||
648 | freelist_extract(SSL_CTX *ctx, int for_read, int sz) | ||
649 | { | ||
650 | SSL3_BUF_FREELIST *list; | ||
651 | SSL3_BUF_FREELIST_ENTRY *ent = NULL; | ||
652 | void *result = NULL; | ||
653 | |||
654 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); | ||
655 | list = for_read ? ctx->rbuf_freelist : ctx->wbuf_freelist; | ||
656 | if (list != NULL && sz == (int)list->chunklen) | ||
657 | ent = list->head; | ||
658 | if (ent != NULL) { | ||
659 | list->head = ent->next; | ||
660 | result = ent; | ||
661 | if (--list->len == 0) | ||
662 | list->chunklen = 0; | ||
663 | } | ||
664 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); | ||
665 | if (!result) | ||
666 | result = OPENSSL_malloc(sz); | ||
667 | return result; | ||
668 | } | ||
669 | |||
670 | static void | ||
671 | freelist_insert(SSL_CTX *ctx, int for_read, size_t sz, void *mem) | ||
672 | { | ||
673 | SSL3_BUF_FREELIST *list; | ||
674 | SSL3_BUF_FREELIST_ENTRY *ent; | ||
675 | |||
676 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); | ||
677 | list = for_read ? ctx->rbuf_freelist : ctx->wbuf_freelist; | ||
678 | if (list != NULL && (sz == list->chunklen || list->chunklen == 0) && | ||
679 | list->len < ctx->freelist_max_len && sz >= sizeof(*ent)) { | ||
680 | list->chunklen = sz; | ||
681 | ent = mem; | ||
682 | ent->next = list->head; | ||
683 | list->head = ent; | ||
684 | ++list->len; | ||
685 | mem = NULL; | ||
686 | } | ||
687 | |||
688 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); | ||
689 | if (mem) | ||
690 | OPENSSL_free(mem); | ||
691 | } | ||
692 | #else | ||
693 | #define freelist_extract(c,fr,sz) OPENSSL_malloc(sz) | ||
694 | #define freelist_insert(c,fr,sz,m) OPENSSL_free(m) | ||
695 | #endif | ||
696 | |||
697 | int | 627 | int |
698 | ssl3_setup_read_buffer(SSL *s) | 628 | ssl3_setup_read_buffer(SSL *s) |
699 | { | 629 | { |
@@ -720,7 +650,7 @@ ssl3_setup_read_buffer(SSL *s) | |||
720 | if (!(s->options & SSL_OP_NO_COMPRESSION)) | 650 | if (!(s->options & SSL_OP_NO_COMPRESSION)) |
721 | len += SSL3_RT_MAX_COMPRESSED_OVERHEAD; | 651 | len += SSL3_RT_MAX_COMPRESSED_OVERHEAD; |
722 | #endif | 652 | #endif |
723 | if ((p = freelist_extract(s->ctx, 1, len)) == NULL) | 653 | if ((p = OPENSSL_malloc(len)) == NULL) |
724 | goto err; | 654 | goto err; |
725 | s->s3->rbuf.buf = p; | 655 | s->s3->rbuf.buf = p; |
726 | s->s3->rbuf.len = len; | 656 | s->s3->rbuf.len = len; |
@@ -760,7 +690,7 @@ ssl3_setup_write_buffer(SSL *s) | |||
760 | len += headerlen + align + | 690 | len += headerlen + align + |
761 | SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD; | 691 | SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD; |
762 | 692 | ||
763 | if ((p = freelist_extract(s->ctx, 0, len)) == NULL) | 693 | if ((p = OPENSSL_malloc(len)) == NULL) |
764 | goto err; | 694 | goto err; |
765 | s->s3->wbuf.buf = p; | 695 | s->s3->wbuf.buf = p; |
766 | s->s3->wbuf.len = len; | 696 | s->s3->wbuf.len = len; |
@@ -788,7 +718,7 @@ int | |||
788 | ssl3_release_write_buffer(SSL *s) | 718 | ssl3_release_write_buffer(SSL *s) |
789 | { | 719 | { |
790 | if (s->s3->wbuf.buf != NULL) { | 720 | if (s->s3->wbuf.buf != NULL) { |
791 | freelist_insert(s->ctx, 0, s->s3->wbuf.len, s->s3->wbuf.buf); | 721 | OPENSSL_free(s->s3->wbuf.buf); |
792 | s->s3->wbuf.buf = NULL; | 722 | s->s3->wbuf.buf = NULL; |
793 | } | 723 | } |
794 | return 1; | 724 | return 1; |
@@ -798,7 +728,7 @@ int | |||
798 | ssl3_release_read_buffer(SSL *s) | 728 | ssl3_release_read_buffer(SSL *s) |
799 | { | 729 | { |
800 | if (s->s3->rbuf.buf != NULL) { | 730 | if (s->s3->rbuf.buf != NULL) { |
801 | freelist_insert(s->ctx, 1, s->s3->rbuf.len, s->s3->rbuf.buf); | 731 | OPENSSL_free(s->s3->rbuf.buf); |
802 | s->s3->rbuf.buf = NULL; | 732 | s->s3->rbuf.buf = NULL; |
803 | } | 733 | } |
804 | return 1; | 734 | return 1; |
diff --git a/src/lib/libssl/src/ssl/ssl.h b/src/lib/libssl/src/ssl/ssl.h index d3e015e738..cefee6189d 100644 --- a/src/lib/libssl/src/ssl/ssl.h +++ b/src/lib/libssl/src/ssl/ssl.h | |||
@@ -936,12 +936,6 @@ struct ssl_ctx_st { | |||
936 | unsigned char *psk, unsigned int max_psk_len); | 936 | unsigned char *psk, unsigned int max_psk_len); |
937 | #endif | 937 | #endif |
938 | 938 | ||
939 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
940 | #define SSL_MAX_BUF_FREELIST_LEN_DEFAULT 32 | ||
941 | unsigned int freelist_max_len; | ||
942 | struct ssl3_buf_freelist_st *wbuf_freelist; | ||
943 | struct ssl3_buf_freelist_st *rbuf_freelist; | ||
944 | #endif | ||
945 | #ifndef OPENSSL_NO_SRP | 939 | #ifndef OPENSSL_NO_SRP |
946 | SRP_CTX srp_ctx; /* ctx for SRP authentication */ | 940 | SRP_CTX srp_ctx; /* ctx for SRP authentication */ |
947 | #endif | 941 | #endif |
diff --git a/src/lib/libssl/src/ssl/ssl_lib.c b/src/lib/libssl/src/ssl/ssl_lib.c index a0882e4521..6db3bd2993 100644 --- a/src/lib/libssl/src/ssl/ssl_lib.c +++ b/src/lib/libssl/src/ssl/ssl_lib.c | |||
@@ -1826,23 +1826,6 @@ SSL_CTX | |||
1826 | #ifndef OPENSSL_NO_SRP | 1826 | #ifndef OPENSSL_NO_SRP |
1827 | SSL_CTX_SRP_CTX_init(ret); | 1827 | SSL_CTX_SRP_CTX_init(ret); |
1828 | #endif | 1828 | #endif |
1829 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
1830 | ret->freelist_max_len = SSL_MAX_BUF_FREELIST_LEN_DEFAULT; | ||
1831 | ret->rbuf_freelist = OPENSSL_malloc(sizeof(SSL3_BUF_FREELIST)); | ||
1832 | if (!ret->rbuf_freelist) | ||
1833 | goto err; | ||
1834 | ret->rbuf_freelist->chunklen = 0; | ||
1835 | ret->rbuf_freelist->len = 0; | ||
1836 | ret->rbuf_freelist->head = NULL; | ||
1837 | ret->wbuf_freelist = OPENSSL_malloc(sizeof(SSL3_BUF_FREELIST)); | ||
1838 | if (!ret->wbuf_freelist) { | ||
1839 | OPENSSL_free(ret->rbuf_freelist); | ||
1840 | goto err; | ||
1841 | } | ||
1842 | ret->wbuf_freelist->chunklen = 0; | ||
1843 | ret->wbuf_freelist->len = 0; | ||
1844 | ret->wbuf_freelist->head = NULL; | ||
1845 | #endif | ||
1846 | #ifndef OPENSSL_NO_ENGINE | 1829 | #ifndef OPENSSL_NO_ENGINE |
1847 | ret->client_cert_engine = NULL; | 1830 | ret->client_cert_engine = NULL; |
1848 | #ifdef OPENSSL_SSL_CLIENT_ENGINE_AUTO | 1831 | #ifdef OPENSSL_SSL_CLIENT_ENGINE_AUTO |
@@ -1883,19 +1866,6 @@ SSL_COMP_free(SSL_COMP *comp) | |||
1883 | } | 1866 | } |
1884 | #endif | 1867 | #endif |
1885 | 1868 | ||
1886 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
1887 | static void | ||
1888 | ssl_buf_freelist_free(SSL3_BUF_FREELIST *list) | ||
1889 | { | ||
1890 | SSL3_BUF_FREELIST_ENTRY *ent, *next; | ||
1891 | for (ent = list->head; ent; ent = next) { | ||
1892 | next = ent->next; | ||
1893 | OPENSSL_free(ent); | ||
1894 | } | ||
1895 | OPENSSL_free(list); | ||
1896 | } | ||
1897 | #endif | ||
1898 | |||
1899 | void | 1869 | void |
1900 | SSL_CTX_free(SSL_CTX *a) | 1870 | SSL_CTX_free(SSL_CTX *a) |
1901 | { | 1871 | { |
@@ -1973,13 +1943,6 @@ SSL_CTX_free(SSL_CTX *a) | |||
1973 | ENGINE_finish(a->client_cert_engine); | 1943 | ENGINE_finish(a->client_cert_engine); |
1974 | #endif | 1944 | #endif |
1975 | 1945 | ||
1976 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
1977 | if (a->wbuf_freelist) | ||
1978 | ssl_buf_freelist_free(a->wbuf_freelist); | ||
1979 | if (a->rbuf_freelist) | ||
1980 | ssl_buf_freelist_free(a->rbuf_freelist); | ||
1981 | #endif | ||
1982 | |||
1983 | OPENSSL_free(a); | 1946 | OPENSSL_free(a); |
1984 | } | 1947 | } |
1985 | 1948 | ||
diff --git a/src/lib/libssl/src/ssl/ssl_locl.h b/src/lib/libssl/src/ssl/ssl_locl.h index e9c3a6bcd8..c539b1229d 100644 --- a/src/lib/libssl/src/ssl/ssl_locl.h +++ b/src/lib/libssl/src/ssl/ssl_locl.h | |||
@@ -594,18 +594,6 @@ typedef struct ssl3_comp_st { | |||
594 | } SSL3_COMP; | 594 | } SSL3_COMP; |
595 | #endif | 595 | #endif |
596 | 596 | ||
597 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
598 | typedef struct ssl3_buf_freelist_st { | ||
599 | size_t chunklen; | ||
600 | unsigned int len; | ||
601 | struct ssl3_buf_freelist_entry_st *head; | ||
602 | } SSL3_BUF_FREELIST; | ||
603 | |||
604 | typedef struct ssl3_buf_freelist_entry_st { | ||
605 | struct ssl3_buf_freelist_entry_st *next; | ||
606 | } SSL3_BUF_FREELIST_ENTRY; | ||
607 | #endif | ||
608 | |||
609 | extern SSL3_ENC_METHOD ssl3_undef_enc_method; | 597 | extern SSL3_ENC_METHOD ssl3_undef_enc_method; |
610 | OPENSSL_EXTERN const SSL_CIPHER ssl2_ciphers[]; | 598 | OPENSSL_EXTERN const SSL_CIPHER ssl2_ciphers[]; |
611 | OPENSSL_EXTERN SSL_CIPHER ssl3_ciphers[]; | 599 | OPENSSL_EXTERN SSL_CIPHER ssl3_ciphers[]; |
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h index d3e015e738..cefee6189d 100644 --- a/src/lib/libssl/ssl.h +++ b/src/lib/libssl/ssl.h | |||
@@ -936,12 +936,6 @@ struct ssl_ctx_st { | |||
936 | unsigned char *psk, unsigned int max_psk_len); | 936 | unsigned char *psk, unsigned int max_psk_len); |
937 | #endif | 937 | #endif |
938 | 938 | ||
939 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
940 | #define SSL_MAX_BUF_FREELIST_LEN_DEFAULT 32 | ||
941 | unsigned int freelist_max_len; | ||
942 | struct ssl3_buf_freelist_st *wbuf_freelist; | ||
943 | struct ssl3_buf_freelist_st *rbuf_freelist; | ||
944 | #endif | ||
945 | #ifndef OPENSSL_NO_SRP | 939 | #ifndef OPENSSL_NO_SRP |
946 | SRP_CTX srp_ctx; /* ctx for SRP authentication */ | 940 | SRP_CTX srp_ctx; /* ctx for SRP authentication */ |
947 | #endif | 941 | #endif |
diff --git a/src/lib/libssl/ssl/Makefile b/src/lib/libssl/ssl/Makefile index 6c8584e80d..57124e2dc2 100644 --- a/src/lib/libssl/ssl/Makefile +++ b/src/lib/libssl/ssl/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.37 2014/04/16 20:39:09 tedu Exp $ | 1 | # $OpenBSD: Makefile,v 1.38 2014/04/16 21:16:33 tedu Exp $ |
2 | 2 | ||
3 | LIB= ssl | 3 | LIB= ssl |
4 | 4 | ||
@@ -7,7 +7,6 @@ LSSL_SRC= ${SSL_SRC}/ssl | |||
7 | 7 | ||
8 | CFLAGS+= -DTERMIOS -DANSI_SOURCE | 8 | CFLAGS+= -DTERMIOS -DANSI_SOURCE |
9 | CFLAGS+= -DOPENSSL_NO_RC5 -DOPENSSL_NO_KRB5 | 9 | CFLAGS+= -DOPENSSL_NO_RC5 -DOPENSSL_NO_KRB5 |
10 | CFLAGS+= -DOPENSSL_NO_BUF_FREELISTS | ||
11 | CFLAGS+= -I${SSL_SRC} | 10 | CFLAGS+= -I${SSL_SRC} |
12 | 11 | ||
13 | SRCS=\ | 12 | SRCS=\ |
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index a0882e4521..6db3bd2993 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
@@ -1826,23 +1826,6 @@ SSL_CTX | |||
1826 | #ifndef OPENSSL_NO_SRP | 1826 | #ifndef OPENSSL_NO_SRP |
1827 | SSL_CTX_SRP_CTX_init(ret); | 1827 | SSL_CTX_SRP_CTX_init(ret); |
1828 | #endif | 1828 | #endif |
1829 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
1830 | ret->freelist_max_len = SSL_MAX_BUF_FREELIST_LEN_DEFAULT; | ||
1831 | ret->rbuf_freelist = OPENSSL_malloc(sizeof(SSL3_BUF_FREELIST)); | ||
1832 | if (!ret->rbuf_freelist) | ||
1833 | goto err; | ||
1834 | ret->rbuf_freelist->chunklen = 0; | ||
1835 | ret->rbuf_freelist->len = 0; | ||
1836 | ret->rbuf_freelist->head = NULL; | ||
1837 | ret->wbuf_freelist = OPENSSL_malloc(sizeof(SSL3_BUF_FREELIST)); | ||
1838 | if (!ret->wbuf_freelist) { | ||
1839 | OPENSSL_free(ret->rbuf_freelist); | ||
1840 | goto err; | ||
1841 | } | ||
1842 | ret->wbuf_freelist->chunklen = 0; | ||
1843 | ret->wbuf_freelist->len = 0; | ||
1844 | ret->wbuf_freelist->head = NULL; | ||
1845 | #endif | ||
1846 | #ifndef OPENSSL_NO_ENGINE | 1829 | #ifndef OPENSSL_NO_ENGINE |
1847 | ret->client_cert_engine = NULL; | 1830 | ret->client_cert_engine = NULL; |
1848 | #ifdef OPENSSL_SSL_CLIENT_ENGINE_AUTO | 1831 | #ifdef OPENSSL_SSL_CLIENT_ENGINE_AUTO |
@@ -1883,19 +1866,6 @@ SSL_COMP_free(SSL_COMP *comp) | |||
1883 | } | 1866 | } |
1884 | #endif | 1867 | #endif |
1885 | 1868 | ||
1886 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
1887 | static void | ||
1888 | ssl_buf_freelist_free(SSL3_BUF_FREELIST *list) | ||
1889 | { | ||
1890 | SSL3_BUF_FREELIST_ENTRY *ent, *next; | ||
1891 | for (ent = list->head; ent; ent = next) { | ||
1892 | next = ent->next; | ||
1893 | OPENSSL_free(ent); | ||
1894 | } | ||
1895 | OPENSSL_free(list); | ||
1896 | } | ||
1897 | #endif | ||
1898 | |||
1899 | void | 1869 | void |
1900 | SSL_CTX_free(SSL_CTX *a) | 1870 | SSL_CTX_free(SSL_CTX *a) |
1901 | { | 1871 | { |
@@ -1973,13 +1943,6 @@ SSL_CTX_free(SSL_CTX *a) | |||
1973 | ENGINE_finish(a->client_cert_engine); | 1943 | ENGINE_finish(a->client_cert_engine); |
1974 | #endif | 1944 | #endif |
1975 | 1945 | ||
1976 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
1977 | if (a->wbuf_freelist) | ||
1978 | ssl_buf_freelist_free(a->wbuf_freelist); | ||
1979 | if (a->rbuf_freelist) | ||
1980 | ssl_buf_freelist_free(a->rbuf_freelist); | ||
1981 | #endif | ||
1982 | |||
1983 | OPENSSL_free(a); | 1946 | OPENSSL_free(a); |
1984 | } | 1947 | } |
1985 | 1948 | ||
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h index e9c3a6bcd8..c539b1229d 100644 --- a/src/lib/libssl/ssl_locl.h +++ b/src/lib/libssl/ssl_locl.h | |||
@@ -594,18 +594,6 @@ typedef struct ssl3_comp_st { | |||
594 | } SSL3_COMP; | 594 | } SSL3_COMP; |
595 | #endif | 595 | #endif |
596 | 596 | ||
597 | #ifndef OPENSSL_NO_BUF_FREELISTS | ||
598 | typedef struct ssl3_buf_freelist_st { | ||
599 | size_t chunklen; | ||
600 | unsigned int len; | ||
601 | struct ssl3_buf_freelist_entry_st *head; | ||
602 | } SSL3_BUF_FREELIST; | ||
603 | |||
604 | typedef struct ssl3_buf_freelist_entry_st { | ||
605 | struct ssl3_buf_freelist_entry_st *next; | ||
606 | } SSL3_BUF_FREELIST_ENTRY; | ||
607 | #endif | ||
608 | |||
609 | extern SSL3_ENC_METHOD ssl3_undef_enc_method; | 597 | extern SSL3_ENC_METHOD ssl3_undef_enc_method; |
610 | OPENSSL_EXTERN const SSL_CIPHER ssl2_ciphers[]; | 598 | OPENSSL_EXTERN const SSL_CIPHER ssl2_ciphers[]; |
611 | OPENSSL_EXTERN SSL_CIPHER ssl3_ciphers[]; | 599 | OPENSSL_EXTERN SSL_CIPHER ssl3_ciphers[]; |