media: lirc: don't kfree the uninitialized pointer txbuf
authorColin Ian King <colin.king@canonical.com>
Tue, 19 Dec 2017 16:48:25 +0000 (11:48 -0500)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 23 Jan 2018 12:20:29 +0000 (07:20 -0500)
commit8d25e15d94a2d7b60c28d3a30e4e0e780cab2056
treee3f4049902695766758f34e84d5af4fdc28b66cf
parente3ee691dbf24096ea51b3200946b11d68ce75361
media: lirc: don't kfree the uninitialized pointer txbuf

The current error exit path if ir_raw_encode_scancode fails is via the
label out_kfree which kfree's an uninitialized pointer txbuf. Fix this
by exiting via a new exit path that does not kfree txbuf.  Also exit
via this new exit path for a failed allocation of txbuf to avoid a
redundant kfree on a NULL pointer (to save a bunch of CPU cycles).

Detected by: CoverityScan, CID#1463070 ("Uninitialized pointer read")

Fixes: f81a8158d4fb ("media: lirc: release lock before sleep")

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/rc/lirc_dev.c