• Zheyu Ma's avatar
    media: pci: cx23885: Fix the error handling in cx23885_initdev() · e8123311
    Zheyu Ma authored
    
    
    When the driver fails to call the dma_set_mask(), the driver will get
    the following splat:
    
    [   55.853884] BUG: KASAN: use-after-free in __process_removed_driver+0x3c/0x240
    [   55.854486] Read of size 8 at addr ffff88810de60408 by task modprobe/590
    [   55.856822] Call Trace:
    [   55.860327]  __process_removed_driver+0x3c/0x240
    [   55.861347]  bus_for_each_dev+0x102/0x160
    [   55.861681]  i2c_del_driver+0x2f/0x50
    
    This is because the driver has initialized the i2c related resources
    in cx23885_dev_setup() but not released them in error handling, fix this
    bug by modifying the error path that jumps after failing to call the
    dma_set_mask().
    Signed-off-by: default avatarZheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
    e8123311
cx23885-core.c 61.8 KB