media: mxl111sf: change mutex_init() location
stable inclusion from stable-v4.19.222 commit 4b2d9600b31f9ba7adbc9f3c54a068615d27b390 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/IA6SIB CVE: CVE-2021-47583 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4b2d9600b31f9ba7adbc9f3c54a068615d27b390 -------------------------------- commit 44870a9e upstream. Syzbot reported, that mxl111sf_ctrl_msg() uses uninitialized mutex. The problem was in wrong mutex_init() location. Previous mutex_init(&state->msg_lock) call was in ->init() function, but dvb_usbv2_init() has this order of calls: dvb_usbv2_init() dvb_usbv2_adapter_init() dvb_usbv2_adapter_frontend_init() props->frontend_attach() props->init() Since mxl111sf_* devices call mxl111sf_ctrl_msg() in ->frontend_attach() internally we need to initialize state->msg_lock before frontend_attach(). To achieve it, ->probe() call added to all mxl111sf_* devices, which will simply initiaize mutex. Reported-and-tested-by:<syzbot+5ca0bf339f13c4243001@syzkaller.appspotmail.com> Fixes: 85722118 ("[media] mxl111sf: convert to new DVB USB") Signed-off-by:
Pavel Skripkin <paskripkin@gmail.com> Signed-off-by:
Sean Young <sean@mess.org> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Liu Shixin <liushixin2@huawei.com>
Loading
Please sign in to comment