From b10514fb8026723251df8b6e4cd242078d837eff Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Thu, 26 May 2022 16:18:52 -0700 Subject: [PATCH 01/11] replace setenv --- source/s2n/s2n_tls_channel_handler.c | 38 ++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/source/s2n/s2n_tls_channel_handler.c b/source/s2n/s2n_tls_channel_handler.c index e0e776361..cb72221eb 100644 --- a/source/s2n/s2n_tls_channel_handler.c +++ b/source/s2n/s2n_tls_channel_handler.c @@ -168,12 +168,46 @@ static const char *s_determine_default_pki_ca_file(void) { return NULL; } +static struct aws_allocator *s_library_allocator = NULL; + +static int s_s2n_mem_init(void) { + return S2N_SUCCESS; +} + +static int s_s2n_mem_cleanup(void) { + return S2N_SUCCESS; +} + +static int s_s2n_mem_malloc(void **ptr, uint32_t requested, uint32_t *allocated) { + *ptr = aws_mem_acquire(s_library_allocator, requested); + *allocated = requested; + + return S2N_SUCCESS; +} + +static int s_s2n_mem_free(void *ptr, uint32_t size) { + (void)size; + aws_mem_release(s_library_allocator, ptr); + return S2N_SUCCESS; +} + +static void s_override_s2n_mem_functions(struct aws_allocator *alloc) { + if (alloc) { + s_library_allocator = alloc; + } else { + s_library_allocator = aws_default_allocator(); + } + + s2n_mem_set_callbacks(s_s2n_mem_init, s_s2n_mem_cleanup, s_s2n_mem_malloc, s_s2n_mem_free); +} + void aws_tls_init_static_state(struct aws_allocator *alloc) { (void)alloc; AWS_LOGF_INFO(AWS_LS_IO_TLS, "static: Initializing TLS using s2n."); - setenv("S2N_ENABLE_CLIENT_MODE", "1", 1); - setenv("S2N_DONT_MLOCK", "1", 1); + //setenv("S2N_ENABLE_CLIENT_MODE", "1", 1); + //setenv("S2N_DONT_MLOCK", "1", 1); + s_override_s2n_mem_functions(alloc); /* Disable atexit behavior, so that s2n_cleanup() fully cleans things up. * From a70804560df4d907d9d31382d4613571834e9dae Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Fri, 27 May 2022 01:25:19 -0700 Subject: [PATCH 02/11] disable mem override --- source/s2n/s2n_tls_channel_handler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/s2n/s2n_tls_channel_handler.c b/source/s2n/s2n_tls_channel_handler.c index cb72221eb..30207810d 100644 --- a/source/s2n/s2n_tls_channel_handler.c +++ b/source/s2n/s2n_tls_channel_handler.c @@ -207,7 +207,7 @@ void aws_tls_init_static_state(struct aws_allocator *alloc) { //setenv("S2N_ENABLE_CLIENT_MODE", "1", 1); //setenv("S2N_DONT_MLOCK", "1", 1); - s_override_s2n_mem_functions(alloc); + //s_override_s2n_mem_functions(alloc); /* Disable atexit behavior, so that s2n_cleanup() fully cleans things up. * From 66a2e76b978802af8740bcadae4e4905d6171dba Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Fri, 27 May 2022 01:30:04 -0700 Subject: [PATCH 03/11] fix unused functions --- source/s2n/s2n_tls_channel_handler.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/s2n/s2n_tls_channel_handler.c b/source/s2n/s2n_tls_channel_handler.c index 30207810d..54d3e4300 100644 --- a/source/s2n/s2n_tls_channel_handler.c +++ b/source/s2n/s2n_tls_channel_handler.c @@ -170,6 +170,7 @@ static const char *s_determine_default_pki_ca_file(void) { static struct aws_allocator *s_library_allocator = NULL; +/* static int s_s2n_mem_init(void) { return S2N_SUCCESS; } @@ -200,6 +201,7 @@ static void s_override_s2n_mem_functions(struct aws_allocator *alloc) { s2n_mem_set_callbacks(s_s2n_mem_init, s_s2n_mem_cleanup, s_s2n_mem_malloc, s_s2n_mem_free); } +*/ void aws_tls_init_static_state(struct aws_allocator *alloc) { (void)alloc; From 101fce8d7c06837978a7158c8f3903056fa912c1 Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Fri, 27 May 2022 01:34:21 -0700 Subject: [PATCH 04/11] fix unused functions --- source/s2n/s2n_tls_channel_handler.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/s2n/s2n_tls_channel_handler.c b/source/s2n/s2n_tls_channel_handler.c index 54d3e4300..2e8f238cb 100644 --- a/source/s2n/s2n_tls_channel_handler.c +++ b/source/s2n/s2n_tls_channel_handler.c @@ -168,9 +168,10 @@ static const char *s_determine_default_pki_ca_file(void) { return NULL; } +/* static struct aws_allocator *s_library_allocator = NULL; -/* + static int s_s2n_mem_init(void) { return S2N_SUCCESS; } From 4eb5c615fcd48c2fe789936b1fc931bec6048182 Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Thu, 27 Apr 2023 15:42:02 -0700 Subject: [PATCH 05/11] typo --- source/s2n/s2n_tls_channel_handler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/s2n/s2n_tls_channel_handler.c b/source/s2n/s2n_tls_channel_handler.c index 5db29463c..8d3439181 100644 --- a/source/s2n/s2n_tls_channel_handler.c +++ b/source/s2n/s2n_tls_channel_handler.c @@ -230,7 +230,7 @@ void aws_tls_init_static_state(struct aws_allocator *alloc) { if (!s_s2n_initialized_externally) { //setenv("S2N_DONT_MLOCK", "1", 1); - s_override_s2n_mem_functions(alloc) + s_override_s2n_mem_functions(alloc); if (s2n_init() != S2N_SUCCESS) { fprintf(stderr, "s2n_init() failed: %d (%s)\n", s2n_errno, s2n_strerror(s2n_errno, "EN")); From 8acb59d2e036b7a8f7560c98e273a10fcd1c1ef1 Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Fri, 29 Mar 2024 15:59:27 -0700 Subject: [PATCH 06/11] address comments --- source/s2n/s2n_tls_channel_handler.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/s2n/s2n_tls_channel_handler.c b/source/s2n/s2n_tls_channel_handler.c index 51e3e9e80..bb05a2815 100644 --- a/source/s2n/s2n_tls_channel_handler.c +++ b/source/s2n/s2n_tls_channel_handler.c @@ -204,7 +204,10 @@ static void s_override_s2n_mem_functions(struct aws_allocator *alloc) { s_library_allocator = aws_default_allocator(); } - s2n_mem_set_callbacks(s_s2n_mem_init, s_s2n_mem_cleanup, s_s2n_mem_malloc, s_s2n_mem_free); + if (S2N_SUCCESS != s2n_mem_set_callbacks(s_s2n_mem_init, s_s2n_mem_cleanup, s_s2n_mem_malloc, s_s2n_mem_free)) { + fprintf(stderr, "s2n_mem_set_callbacks() failed: %d (%s)\n", s2n_errno, s2n_strerror(s2n_errno, "EN")); + AWS_FATAL_ASSERT(0 && "s2n_mem_set_callbacks() failed"); + } } /* If s2n is already initialized, then we don't call s2n_init() or s2n_cleanup() ourselves */ From a559ffdc08b0e79527899c895f87bff60119bf83 Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Fri, 29 Mar 2024 16:01:46 -0700 Subject: [PATCH 07/11] lint --- source/s2n/s2n_tls_channel_handler.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/s2n/s2n_tls_channel_handler.c b/source/s2n/s2n_tls_channel_handler.c index bb05a2815..924e988a3 100644 --- a/source/s2n/s2n_tls_channel_handler.c +++ b/source/s2n/s2n_tls_channel_handler.c @@ -174,7 +174,7 @@ AWS_IO_API const char *aws_determine_default_pki_ca_file(void) { return NULL; } -static struct aws_allocator *s_library_allocator = NULL; +static struct aws_allocator *s_library_allocator = NULL; static int s_s2n_mem_init(void) { return S2N_SUCCESS; @@ -232,7 +232,6 @@ void aws_tls_init_static_state(struct aws_allocator *alloc) { } if (!s_s2n_initialized_externally) { - //setenv("S2N_DONT_MLOCK", "1", 1); s_override_s2n_mem_functions(alloc); if (s2n_init() != S2N_SUCCESS) { From 0701d2a6f8ea9edb8749f4efff09274a9056a51c Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Thu, 4 Apr 2024 12:08:22 -0700 Subject: [PATCH 08/11] address comments --- source/s2n/s2n_tls_channel_handler.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/source/s2n/s2n_tls_channel_handler.c b/source/s2n/s2n_tls_channel_handler.c index 924e988a3..14839d19f 100644 --- a/source/s2n/s2n_tls_channel_handler.c +++ b/source/s2n/s2n_tls_channel_handler.c @@ -197,24 +197,11 @@ static int s_s2n_mem_free(void *ptr, uint32_t size) { return S2N_SUCCESS; } -static void s_override_s2n_mem_functions(struct aws_allocator *alloc) { - if (alloc) { - s_library_allocator = alloc; - } else { - s_library_allocator = aws_default_allocator(); - } - - if (S2N_SUCCESS != s2n_mem_set_callbacks(s_s2n_mem_init, s_s2n_mem_cleanup, s_s2n_mem_malloc, s_s2n_mem_free)) { - fprintf(stderr, "s2n_mem_set_callbacks() failed: %d (%s)\n", s2n_errno, s2n_strerror(s2n_errno, "EN")); - AWS_FATAL_ASSERT(0 && "s2n_mem_set_callbacks() failed"); - } -} - /* If s2n is already initialized, then we don't call s2n_init() or s2n_cleanup() ourselves */ static bool s_s2n_initialized_externally = false; void aws_tls_init_static_state(struct aws_allocator *alloc) { - (void)alloc; + AWS_FATAL_ASSERT(alloc); AWS_LOGF_INFO(AWS_LS_IO_TLS, "static: Initializing TLS using s2n."); /* Disable atexit behavior, so that s2n_cleanup() fully cleans things up. @@ -232,7 +219,11 @@ void aws_tls_init_static_state(struct aws_allocator *alloc) { } if (!s_s2n_initialized_externally) { - s_override_s2n_mem_functions(alloc); + s_library_allocator = alloc; + if (S2N_SUCCESS != s2n_mem_set_callbacks(s_s2n_mem_init, s_s2n_mem_cleanup, s_s2n_mem_malloc, s_s2n_mem_free)) { + fprintf(stderr, "s2n_mem_set_callbacks() failed: %d (%s)\n", s2n_errno, s2n_strerror(s2n_errno, "EN")); + AWS_FATAL_ASSERT(0 && "s2n_mem_set_callbacks() failed"); + } if (s2n_init() != S2N_SUCCESS) { fprintf(stderr, "s2n_init() failed: %d (%s)\n", s2n_errno, s2n_strerror(s2n_errno, "EN")); From b32f5b29051abcc17f06ad301582a1ffb313cdaf Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Thu, 4 Apr 2024 15:06:02 -0700 Subject: [PATCH 09/11] lets try this --- tests/socket_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/socket_test.c b/tests/socket_test.c index b23ed084b..322cd0180 100644 --- a/tests/socket_test.c +++ b/tests/socket_test.c @@ -790,7 +790,7 @@ static int s_test_outgoing_tcp_sock_error(struct aws_allocator *allocator, void struct aws_socket_endpoint endpoint = { .address = "127.0.0.1", - .port = 8567, + .port = 8569, }; struct error_test_args args = { From 286561411a0244b1c727afe172605ba53da445d3 Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Thu, 4 Apr 2024 15:14:52 -0700 Subject: [PATCH 10/11] try this --- tests/socket_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/socket_test.c b/tests/socket_test.c index 322cd0180..b829b2169 100644 --- a/tests/socket_test.c +++ b/tests/socket_test.c @@ -790,7 +790,7 @@ static int s_test_outgoing_tcp_sock_error(struct aws_allocator *allocator, void struct aws_socket_endpoint endpoint = { .address = "127.0.0.1", - .port = 8569, + .port = 1234, }; struct error_test_args args = { From a8fb143a1b61ac935492f94c5a0f7e7dc09d127b Mon Sep 17 00:00:00 2001 From: Dmitriy Musatkin Date: Thu, 4 Apr 2024 15:24:05 -0700 Subject: [PATCH 11/11] huh --- tests/socket_test.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/socket_test.c b/tests/socket_test.c index b829b2169..07740fc21 100644 --- a/tests/socket_test.c +++ b/tests/socket_test.c @@ -790,7 +790,9 @@ static int s_test_outgoing_tcp_sock_error(struct aws_allocator *allocator, void struct aws_socket_endpoint endpoint = { .address = "127.0.0.1", - .port = 1234, + /* note: the port is completely random from testing perspective, but + * freebsd seems to firewall higher numbered ports so keeping it low */ + .port = 1567, }; struct error_test_args args = {