On Mon, 2019-03-11 at 00:02 +0100, Maciej S. Szmigiero wrote: > > That is, use the glibc function when available and the second > > parameter is zero. > > > > Resolves #230 > > > > Signed-off-by: Nikos Mavrogiannopoulos <[email protected]> > > ---(..) > > --- a/lib/safe-memfuncs.c > > +++ b/lib/safe-memfuncs.c > > @@ -33,14 +30,18 @@ > > * This function will operate similarly to memset(), but will > > * not be optimized out by the compiler. > > * > > - * Returns: void. > > - * > > * Since: 3.4.0 > > **/ > > void gnutls_memset(void *data, int c, size_t size) > > { > > - volatile unsigned volatile_zero = 0; > > + volatile unsigned volatile_zero; > > volatile char *vdata = (volatile char*)data; > > +#ifdef HAVE_EXPLICIT_BZERO > > + if (c == 0) { > > + explicit_bzero(data, size); > > Shouldn't the function return here? > > Because otherwise it is doing the zeroing twice: > first time via explicit_bzero(), > second time via a volatile trick below.
You are right. Would you like to send a merge request fixing that? regards, Nikos _______________________________________________ Gnutls-help mailing list [email protected] http://lists.gnupg.org/mailman/listinfo/gnutls-help
