a/ulaw: fix multiple buffer overflows (#432) 19/211319/1
authorHugo Lefeuvre <hle@owl.eu.com>
Mon, 24 Dec 2018 05:43:48 +0000 (06:43 +0100)
committerSeungbae Shin <seungbae.shin@samsung.com>
Thu, 1 Aug 2019 09:43:43 +0000 (18:43 +0900)
commitca74bfbbc01da648594516318ec0ebff33055504
tree97949bcf990c97cbd81e9b8719486d9b2477bfbb
parent84638beb442c45ce8351a178817c81b74f7257ec
a/ulaw: fix multiple buffer overflows (#432)

i2ulaw_array() and i2alaw_array() fail to handle ptr [count] = INT_MIN
properly, leading to buffer underflow. INT_MIN is a special value
since - INT_MIN cannot be represented as int.

In this case round - INT_MIN to INT_MAX and proceed as usual.

f2ulaw_array() and f2alaw_array() fail to handle ptr [count] = NaN
properly, leading to null pointer dereference.

In this case, arbitrarily set the buffer value to 0.

This commit fixes #429 (CVE-2018-19661 and CVE-2018-19662) and
fixes #344 (CVE-2017-17456 and CVE-2017-17457).

Change-Id: Iffa8edfd10cd51514374bbe4b236dfc8509e1222
src/alaw.c
src/ulaw.c