]> www.infradead.org Git - users/dwmw2/linux.git/commit
media: davinci: vpif: fix use-after-free on driver unbind
authorJohan Hovold <johan@kernel.org>
Wed, 22 Dec 2021 14:20:24 +0000 (15:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 11:57:29 +0000 (13:57 +0200)
commit9ffc602e14d7b9f7e7cb2f67e18dfef9ef8af676
tree6ccc8b5a3d31df31230739cd60f6690c425cda9f
parent1478a723695e103e3ee652b3a87602244e06fabd
media: davinci: vpif: fix use-after-free on driver unbind

commit 43acb728bbc40169d2e2425e84a80068270974be upstream.

The driver allocates and registers two platform device structures during
probe, but the devices were never deregistered on driver unbind.

This results in a use-after-free on driver unbind as the device
structures were allocated using devres and would be freed by driver
core when remove() returns.

Fix this by adding the missing deregistration calls to the remove()
callback and failing probe on registration errors.

Note that the platform device structures must be freed using a proper
release callback to avoid leaking associated resources like device
names.

Fixes: 479f7a118105 ("[media] davinci: vpif: adaptions for DT support")
Cc: stable@vger.kernel.org # 4.12
Cc: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Lad Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/platform/davinci/vpif.c