]> git.kaiwu.me - nginx.git/commitdiff
Core: ngx_explicit_memzero().
authorMaxim Dounin <mdounin@mdounin.ru>
Thu, 15 Nov 2018 18:28:02 +0000 (21:28 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Thu, 15 Nov 2018 18:28:02 +0000 (21:28 +0300)
src/core/ngx_string.c
src/core/ngx_string.h
src/event/ngx_event_openssl.c

index 2ee07bfc82384516f7eadd579c9a59e822134f23..04980f8c38430a50829eecd73238fd5dd6cd9d76 100644 (file)
@@ -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 *
index 882ae7cea9b0585156d22b8d3e806f2c270980d1..0fb9be72e7d276d19ca37f664a0fea29ae4e3916 100644 (file)
@@ -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)
 
index 2c384a4ddc494370a345f9045d928133393eabeb..a281fba9e793d1d080b072520f9286410c2f45d5 100644 (file)
@@ -1051,7 +1051,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;
 }
@@ -1068,7 +1068,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);
     }
 }