From 014b178f84fd6c5766e6a626a83f15a0dc635c90 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 14 Oct 2012 03:42:28 +0200 Subject: [PATCH] g723_1: fix overflow in square_root() the intermediate does not fit in a signed 32bit int Signed-off-by: Michael Niedermayer --- libavcodec/g723_1.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/g723_1.c b/libavcodec/g723_1.c index 29eb4fae2c..017ecc41c4 100644 --- a/libavcodec/g723_1.c +++ b/libavcodec/g723_1.c @@ -226,8 +226,10 @@ static int unpack_bitstream(G723_1_Context *p, const uint8_t *buf, /** * Bitexact implementation of sqrt(val/2). */ -static int16_t square_root(int val) +static int16_t square_root(unsigned val) { + av_assert2(!(val & 0x80000000)); + return (ff_sqrt(val << 1) >> 1) & (~1); }