avutil/ripemd: make rol macro more robust by adding parentheses
authorGanesh Ajjanagadde <gajjanagadde@gmail.com>
Tue, 27 Oct 2015 23:58:41 +0000 (19:58 -0400)
committerGanesh Ajjanagadde <gajjanagadde@gmail.com>
Thu, 29 Oct 2015 01:42:15 +0000 (21:42 -0400)
This ensures that the macro remains correct in the sense of allowing
expressions for value and bits, by placing the value and bits expressions within
parentheses.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
libavutil/ripemd.c

index d247fb4..6777c99 100644 (file)
@@ -85,7 +85,7 @@ static const int WB[80] = {
     12, 15, 10,  4,  1,  5,  8,  7,  6,  2, 13, 14,  0,  3,  9, 11
 };
 
-#define rol(value, bits) ((value << bits) | (value >> (32 - bits)))
+#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
 
 #define ROUND128_0_TO_15(a,b,c,d,e,f,g,h)                               \
     a = rol(a + ((  b ^ c  ^ d)      + block[WA[n]]),         ROTA[n]); \