- djm@cvs.openbsd.org 2014/02/02 03:44:31

[digest-libc.c digest-openssl.c]
     convert memset of potentially-private data to explicit_bzero()
This commit is contained in:
Damien Miller 2014-02-04 11:25:45 +11:00
parent aae07e2e20
commit db3c595ea7
3 changed files with 8 additions and 5 deletions

View File

@ -57,6 +57,9 @@
[ssh-ecdsa.c] [ssh-ecdsa.c]
fix memory leak; ECDSA_SIG_new() allocates 'r' and 's' for us, unlike fix memory leak; ECDSA_SIG_new() allocates 'r' and 's' for us, unlike
DSA_SIG_new. Reported by Batz Spear; ok markus@ DSA_SIG_new. Reported by Batz Spear; ok markus@
- djm@cvs.openbsd.org 2014/02/02 03:44:31
[digest-libc.c digest-openssl.c]
convert memset of potentially-private data to explicit_bzero()
20140131 20140131
- (djm) [sandbox-seccomp-filter.c sandbox-systrace.c] Allow shutdown(2) - (djm) [sandbox-seccomp-filter.c sandbox-systrace.c] Allow shutdown(2)

View File

@ -1,4 +1,4 @@
/* $OpenBSD: digest-libc.c,v 1.1 2014/01/28 20:13:46 markus Exp $ */ /* $OpenBSD: digest-libc.c,v 1.2 2014/02/02 03:44:31 djm Exp $ */
/* /*
* Copyright (c) 2013 Damien Miller <djm@mindrot.org> * Copyright (c) 2013 Damien Miller <djm@mindrot.org>
* Copyright (c) 2014 Markus Friedl. All rights reserved. * Copyright (c) 2014 Markus Friedl. All rights reserved.
@ -209,9 +209,9 @@ ssh_digest_free(struct ssh_digest_ctx *ctx)
if (ctx != NULL) { if (ctx != NULL) {
digest = ssh_digest_by_alg(ctx->alg); digest = ssh_digest_by_alg(ctx->alg);
if (digest) { if (digest) {
memset(ctx->mdctx, 0, digest->ctx_len); explicit_bzero(ctx->mdctx, digest->ctx_len);
free(ctx->mdctx); free(ctx->mdctx);
memset(ctx, 0, sizeof(*ctx)); explicit_bzero(ctx, sizeof(*ctx));
free(ctx); free(ctx);
} }
} }

View File

@ -1,4 +1,4 @@
/* $OpenBSD: digest-openssl.c,v 1.1 2014/01/28 20:13:46 markus Exp $ */ /* $OpenBSD: digest-openssl.c,v 1.2 2014/02/02 03:44:31 djm Exp $ */
/* /*
* Copyright (c) 2013 Damien Miller <djm@mindrot.org> * Copyright (c) 2013 Damien Miller <djm@mindrot.org>
* *
@ -140,7 +140,7 @@ ssh_digest_free(struct ssh_digest_ctx *ctx)
{ {
if (ctx != NULL) { if (ctx != NULL) {
EVP_MD_CTX_cleanup(&ctx->mdctx); EVP_MD_CTX_cleanup(&ctx->mdctx);
memset(ctx, 0, sizeof(*ctx)); explicit_bzero(ctx, sizeof(*ctx));
free(ctx); free(ctx);
} }
} }