On Tue, Jul 05, 2011, Miod Vallat wrote: >> found by jsg. >> >> Index: lib/isc/hmacsha.c >> =================================================================== >> RCS file: /home/tedu/cvs/src/usr.sbin/bind/lib/isc/hmacsha.c,v >> retrieving revision 1.1.1.1 >> diff -u -p -r1.1.1.1 hmacsha.c >> --- lib/isc/hmacsha.c 9 Dec 2007 12:34:04 -0000 1.1.1.1 >> +++ lib/isc/hmacsha.c 5 Jul 2011 18:43:15 -0000 >> @@ -65,7 +65,7 @@ void >> isc_hmacsha1_invalidate(isc_hmacsha1_t *ctx) { >> isc_sha1_invalidate(&ctx->sha1ctx); >> memset(ctx->key, 0, sizeof(ctx->key)); >> - memset(ctx, 0, sizeof(ctx)); >> + memset(ctx, 0, sizeof(*ctx)); > > Then what purpose is there to keep ctx->key memset before?
obviously because the really secret bits need to be really erased. :) that's a good catch.