From: Stephan Mueller Date: Thu, 31 Jul 2014 19:47:33 +0000 (+0200) Subject: crypto: drbg - fix failure of generating multiple of 2**16 bytes X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ce5481d01f67ad304908ec2113515440c0fa86eb;p=linux-beck.git crypto: drbg - fix failure of generating multiple of 2**16 bytes The function drbg_generate_long slices the request into 2**16 byte or smaller chunks. However, the loop, however invokes the random number generation function with zero bytes when the request size is a multiple of 2**16 bytes. The fix prevents zero bytes requests. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu --- diff --git a/crypto/drbg.c b/crypto/drbg.c index ff975d9e0c2a..7894db9ca90b 100644 --- a/crypto/drbg.c +++ b/crypto/drbg.c @@ -1500,7 +1500,7 @@ static int drbg_generate_long(struct drbg_state *drbg, if (0 >= tmplen) return tmplen; len += tmplen; - } while (slice > 0); + } while (slice > 0 && (len < buflen)); return len; }