ef054e345e
n the 'radio->hdl.error' error handling, ctrl handler allocated by
v4l2_ctrl_new_std() does not released, and caused memory leak as
follows:
unreferenced object 0xffff888033d54200 (size 256):
comm "i2c-si470x-19", pid 909, jiffies 4294914203 (age 8.072s)
hex dump (first 32 bytes):
e8 69 11 03 80 88 ff ff 00 46 d5 33 80 88 ff ff .i.......F.3....
10 42 d5 33 80 88 ff ff 10 42 d5 33 80 88 ff ff .B.3.....B.3....
backtrace:
[<00000000086bd4ed>] __kmalloc_node+0x1eb/0x360
[<00000000bdb68871>] kvmalloc_node+0x66/0x120
[<00000000fac74e4c>] v4l2_ctrl_new+0x7b9/0x1c60 [videodev]
[<00000000693bf940>] v4l2_ctrl_new_std+0x19b/0x270 [videodev]
[<00000000c0cb91bc>] si470x_i2c_probe+0x2d3/0x9a0 [radio_si470x_i2c]
[<0000000056a6f01f>] i2c_device_probe+0x4d8/0xbe0
Fix the error handling path to avoid memory leak.
Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes:
|
||
---|---|---|
.. | ||
si470x | ||
si4713 | ||
wl128x | ||
dsbr100.c | ||
Kconfig | ||
lm7000.h | ||
Makefile | ||
radio-aimslab.c | ||
radio-aztech.c | ||
radio-cadet.c | ||
radio-gemtek.c | ||
radio-isa.c | ||
radio-isa.h | ||
radio-keene.c | ||
radio-ma901.c | ||
radio-maxiradio.c | ||
radio-miropcm20.c | ||
radio-mr800.c | ||
radio-raremono.c | ||
radio-rtrack2.c | ||
radio-sf16fmi.c | ||
radio-sf16fmr2.c | ||
radio-shark2.c | ||
radio-shark.c | ||
radio-si476x.c | ||
radio-tea5764.c | ||
radio-tea5777.c | ||
radio-tea5777.h | ||
radio-terratec.c | ||
radio-timb.c | ||
radio-trust.c | ||
radio-typhoon.c | ||
radio-wl1273.c | ||
radio-zoltrix.c | ||
saa7706h.c | ||
tea575x.c | ||
tef6862.c |