Home
last modified time | relevance | path

Searched hist:a2c714e8cb538406d61e321c627b55ed5362991e (Results 1 – 1 of 1) sorted by relevance

/openbmc/linux/drivers/input/touchscreen/
H A Dcyttsp4_core.cdiff a2c714e8cb538406d61e321c627b55ed5362991e Tue Oct 31 13:33:40 CDT 2017 Vince Kim <vince.k.kim@gmail.com> Input: cyttsp4 - avoid overflows when calculating memory sizes

There are several places to perform subtraction to calculate buffer
size such as:

si->si_ofs.cydata_size = si->si_ofs.test_ofs - si->si_ofs.cydata_ofs;
...
p = krealloc(si->si_ptrs.cydata, si->si_ofs.cydata_size, GFP_KERNEL);

Actually, data types of above variables during subtraction are size_t, so
it is unsigned. That means if second operand(si->si_ofs.cydata_ofs) is
greater than the first operand(si->si_ofs.test_ofs), then resulting
si->si_ofs.cydata_size could result in an unsigned integer wrap which is
not desirable.

The proper way to correct this problem is to perform a test of both
operands to avoid having unsigned wrap.

Signed-off-by: Vince Kim <vince.k.kim@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>