On Thu, Nov 17, 2022 at 09:29:05PM +0100, Jason A. Donenfeld wrote: > These cases were done with this Coccinelle: > > @@ > expression E; > identifier I; > @@ > - do { > ... when != I > - I = get_random_u32(); > ... when != I > - } while (I > E); > + I = get_random_u32_below(E + 1); > > @@ > expression E; > identifier I; > @@ > - do { > ... when != I > - I = get_random_u32(); > ... when != I > - } while (I >= E); > + I = get_random_u32_below(E); > > @@ > expression E; > identifier I; > @@ > - do { > ... when != I > - I = get_random_u32(); > ... when != I > - } while (I < E); > + I = get_random_u32_above(E - 1); > > @@ > expression E; > identifier I; > @@ > - do { > ... when != I > - I = get_random_u32(); > ... when != I > - } while (I <= E); > + I = get_random_u32_above(E); > > @@ > identifier I; > @@ > - do { > ... when != I > - I = get_random_u32(); > ... when != I > - } while (!I); > + I = get_random_u32_above(0); > > @@ > identifier I; > @@ > - do { > ... when != I > - I = get_random_u32(); > ... when != I > - } while (I == 0); > + I = get_random_u32_above(0); > > @@ > expression E; > @@ > - E + 1 + get_random_u32_below(U32_MAX - E) > + get_random_u32_above(E) > > Reviewed-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> -- Kees Cook