[PATCH 1/1] crypto:fix undefined behaviour
Michael Braun
michael-dev at fami-braun.de
Fri Aug 18 09:55:17 PDT 2017
ubsan reported:
../src/crypto/random.c:69:30: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int'
Signed-off-by: Michael Braun <michael-dev at fami-braun.de>
---
src/crypto/random.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/crypto/random.c b/src/crypto/random.c
index 3a86a93..fb92417 100644
--- a/src/crypto/random.c
+++ b/src/crypto/random.c
@@ -66,6 +66,9 @@ static void random_write_entropy(void);
static u32 __ROL32(u32 x, u32 y)
{
+ if (y == 0)
+ return x;
+
return (x << (y & 31)) | (x >> (32 - (y & 31)));
}
--
2.1.4
More information about the Hostap
mailing list