From 6ee0f3383db93e4024660460b1b122d1f92e7495 Mon Sep 17 00:00:00 2001 From: Hakase Date: Fri, 16 Nov 2018 12:53:33 +0900 Subject: [PATCH] Latest update - 7395 --- src/core/ngx_string.c | 8 ++++++++ src/core/ngx_string.h | 2 ++ src/event/ngx_event_openssl.c | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c index 2ee07bf..04980f8 100644 --- a/src/core/ngx_string.c +++ b/src/core/ngx_string.c @@ -2013,6 +2013,14 @@ ngx_sort(void *base, size_t n, size_t size, } +void +ngx_explicit_memzero(void *buf, size_t n) +{ + ngx_memzero(buf, n); + ngx_memory_barrier(); +} + + #if (NGX_MEMCPY_LIMIT) void * diff --git a/src/core/ngx_string.h b/src/core/ngx_string.h index 882ae7c..0fb9be7 100644 --- a/src/core/ngx_string.h +++ b/src/core/ngx_string.h @@ -88,6 +88,8 @@ ngx_strlchr(u_char *p, u_char *last, u_char c) #define ngx_memzero(buf, n) (void) memset(buf, 0, n) #define ngx_memset(buf, c, n) (void) memset(buf, c, n) +void ngx_explicit_memzero(void *buf, size_t n); + #if (NGX_MEMCPY_LIMIT) diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c index 6065b12..f6e3b27 100644 --- a/src/event/ngx_event_openssl.c +++ b/src/event/ngx_event_openssl.c @@ -1059,7 +1059,7 @@ cleanup: ngx_close_file_n " \"%s\" failed", file->data); } - ngx_memzero(buf, NGX_SSL_PASSWORD_BUFFER_SIZE); + ngx_explicit_memzero(buf, NGX_SSL_PASSWORD_BUFFER_SIZE); return passwords; } @@ -1076,7 +1076,7 @@ ngx_ssl_passwords_cleanup(void *data) pwd = passwords->elts; for (i = 0; i < passwords->nelts; i++) { - ngx_memzero(pwd[i].data, pwd[i].len); + ngx_explicit_memzero(pwd[i].data, pwd[i].len); } }