On Sat, Dec 5, 2020 at 12:15:13PM +0900, Masahiko Sawada wrote: > diff --git a/src/common/cryptohash_openssl.c b/src/common/cryptohash_openssl.c > index e5233daab6..a45c86fa67 100644 > --- a/src/common/cryptohash_openssl.c > +++ b/src/common/cryptohash_openssl.c > @@ -81,6 +81,8 @@ pg_cryptohash_create(pg_cryptohash_type type) > return NULL; > } > > + memset(ctx, 0, sizeof(pg_cryptohash_ctx)); > + memset(state, 0, sizeof(pg_cryptohash_state)); > ctx->data = state; > ctx->type = type;
OK, I worked with Sawada-san and added the attached patch. The updated full patch is at the same URL: :-) https://github.com/postgres/postgres/compare/master...bmomjian:key.diff -- Bruce Momjian <br...@momjian.us> https://momjian.us EnterpriseDB https://enterprisedb.com The usefulness of a cup is in its emptiness, Bruce Lee
diff --git a/src/common/cryptohash_openssl.c b/src/common/cryptohash_openssl.c index e5233daab6..02dec1fd1b 100644 --- a/src/common/cryptohash_openssl.c +++ b/src/common/cryptohash_openssl.c @@ -72,14 +72,15 @@ pg_cryptohash_create(pg_cryptohash_type type) ctx = ALLOC(sizeof(pg_cryptohash_ctx)); if (ctx == NULL) return NULL; + explicit_bzero(ctx, sizeof(pg_cryptohash_ctx)); state = ALLOC(sizeof(pg_cryptohash_state)); if (state == NULL) { - explicit_bzero(ctx, sizeof(pg_cryptohash_ctx)); FREE(ctx); return NULL; } + explicit_bzero(state, sizeof(pg_cryptohash_state)); ctx->data = state; ctx->type = type; @@ -97,8 +98,6 @@ pg_cryptohash_create(pg_cryptohash_type type) if (state->evpctx == NULL) { - explicit_bzero(state, sizeof(pg_cryptohash_state)); - explicit_bzero(ctx, sizeof(pg_cryptohash_ctx)); #ifndef FRONTEND ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY),