zink: Fix crash on zink_create_screen error path
authorJosé Expósito <jexposit@redhat.com>
Fri, 3 Nov 2023 13:15:06 +0000 (14:15 +0100)
committerEric Engestrom <eric@engestrom.ch>
Mon, 6 Nov 2023 09:36:38 +0000 (09:36 +0000)
commita317466914af5de90924dd8e24ac047c977e9565
tree76e1fb564c1350077148b4a151904f05bc91b15a
parentb03733fc6b08bbb241a6c295ebc9299c7d5fa59f
zink: Fix crash on zink_create_screen error path

The `zink_internal_create_screen()` function can fail before
`screen->loader_lib` and/or `screen->instance` are initialized.
The `zink_destroy_screen()` doesn't check those cases and crashes.

The error was found by Fedora's CI. The back trace is available at [1].

[1] https://bodhi.fedoraproject.org/updates/FEDORA-2023-c39f82c465

Fixes: 0c2045553fe4 ("zink: use screen destructor for creation fails")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Signed-off-by: José Expósito <jexposit@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26029>
(cherry picked from commit 8a635e516ebb12411de8055c3405f36be43269b3)
.pick_status.json
src/gallium/drivers/zink/zink_screen.c