ACPI: video: Fix NULL pointer dereference in acpi_video_bus_add()
authorDinghao Liu <dinghao.liu@zju.edu.cn>
Mon, 25 Sep 2023 08:08:44 +0000 (16:08 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 25 Sep 2023 09:53:40 +0000 (11:53 +0200)
commitf4dcf06bc6e0161920b700ba3966411d716a321b
treee400fa83eb6831cdc763de6c41a942afb3d4547c
parent6465e260f48790807eef06b583b38ca9789b6072
ACPI: video: Fix NULL pointer dereference in acpi_video_bus_add()

acpi_video_bus_add_notify_handler() could free video->input and
set it to NULL on failure, but this failure would be missed in its
caller acpi_video_bus_add(). As a result, when an error happens in
acpi_dev_install_notify_handler(), acpi_video_bus_add() would call
acpi_video_bus_remove_notify_handler(), where a potential NULL pointer
video->input is dereferenced in input_unregister_device().

Fix this by adding a return value check and adjusting the following
error handling code.

Fixes: 6f7016819766 ("ACPI: video: Install Notify() handler directly")
Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
[ rjw: Subject and changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpi_video.c