[FFmpeg-devel] [PATCH] avutil/ripemd: make rol macro more robust by adding parentheses

James Almer jamrial at gmail.com
Wed Oct 28 16:52:43 CET 2015


On 10/27/2015 9:00 PM, Ganesh Ajjanagadde wrote:
> 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.
> 
> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
> ---
>  libavutil/ripemd.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavutil/ripemd.c b/libavutil/ripemd.c
> index d247fb4..6777c99 100644
> --- a/libavutil/ripemd.c
> +++ b/libavutil/ripemd.c
> @@ -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]); \
> 

LGTM



More information about the ffmpeg-devel mailing list