• Neil Horman's avatar
    crypto: ansi_cprng - Fix off by one error in non-block size request · 714b33d1
    Neil Horman authored
    Stephan Mueller reported to me recently a error in random number generation in
    the ansi cprng. If several small requests are made that are less than the
    instances block size, the remainder for loop code doesn't increment
    rand_data_valid in the last iteration, meaning that the last bytes in the
    rand_data buffer gets reused on the subsequent smaller-than-a-block request for
    random data.
    
    The fix is pretty easy, just re-code the for loop to make sure that
    rand_data_valid gets incremented appropriately
    Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
    Reported-by: default avatarStephan Mueller <stephan.mueller@atsec.com>
    CC: Stephan Mueller <stephan.mueller@atsec.com>
    CC: Petr Matousek <pmatouse@redhat.com>
    CC: Herbert Xu <herbert@gondor.apana.org.au>
    CC: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    714b33d1
ansi_cprng.c 10.8 KB