On Thu, Feb 18, 2016 at 09:11:18PM +0100, Stefan Kempf wrote: > > I think we don't mix declarations and code. > Would this be an option? > > diff --git a/dev/rnd.c b/dev/rnd.c > index 819ce0d..0f57b1b 100644 > --- a/dev/rnd.c > +++ b/dev/rnd.c > @@ -421,7 +421,7 @@ add_entropy_words(const u_int32_t *buf, u_int n) > > for (; n--; buf++) { > u_int32_t w = (*buf << entropy_input_rotate) | > - (*buf >> (32 - entropy_input_rotate)); > + (*buf >> ((32 - entropy_input_rotate) & 31)); > u_int i = entropy_add_ptr = > (entropy_add_ptr - 1) & POOLMASK; > /*
Yes, that should do. > > > Index: dev/rnd.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/rnd.c,v > > retrieving revision 1.178 > > diff -u -p -u -r1.178 rnd.c > > --- dev/rnd.c 8 Jan 2016 07:54:02 -0000 1.178 > > +++ dev/rnd.c 31 Jan 2016 10:11:17 -0000 > > @@ -420,8 +420,9 @@ add_entropy_words(const u_int32_t *buf, > > }; > > > > for (; n--; buf++) { > > - u_int32_t w = (*buf << entropy_input_rotate) | > > - (*buf >> (32 - entropy_input_rotate)); > > + u_int32_t w = *buf << entropy_input_rotate; > > + if (entropy_input_rotate > 0) > > + w |= *buf >> (32 - entropy_input_rotate); > > u_int i = entropy_add_ptr = > > (entropy_add_ptr - 1) & POOLMASK; > > /* > > > > cheers, > > natano > >