Skip to content

venus: Fixes vkr_dispatch_vkCreateDevice that exts maybe NULL

Yonggang Luo requested to merge lygstate/virglrenderer:fix-create-device into master

Fixed against d66378db

The stacktrace:

Thread 42 "vkr-ring-2" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffe30c28640 (LWP 297)]
0x00007ffff70445be in vkr_extension_table_init (table=table@entry=0x7ffe30c24100, exts=exts@entry=0x0, count=count@entry=1) at ../../src/venus/vkr_common.c:155
155           const struct vn_info_extension *ext = vn_info_extension_get(exts[i]);
(gdb) bt
#0  0x00007ffff70445be in vkr_extension_table_init (table=table@entry=0x7ffe30c24100, exts=exts@entry=0x0, count=count@entry=1)
    at ../../src/venus/vkr_common.c:155
#1  0x00007ffff6ff09cc in vkr_device_init_proc_table (count=1, exts=0x0, api_version=4198582, dev=0x7ffe201bb5c0)
    at ../../src/venus/vkr_device.c:72
#2  vkr_dispatch_vkCreateDevice (dispatch=<optimized out>, args=0x7ffe30c241d0) at ../../src/venus/vkr_device.c:133
#3  0x00007ffff6fdde9b in vn_dispatch_vkCreateDevice (ctx=ctx@entry=0x55555a7dca58, flags=1)
    at ../../src/venus/venus-protocol/vn_protocol_renderer_device.h:13920
#4  0x00007ffff6fb3afc in vn_dispatch_command (ctx=0x55555a7dca58)
    at ../../src/venus/venus-protocol/vn_protocol_renderer_dispatches.h:538
#5  vkr_context_submit_cmd (base=0x55555a7dc8d0, buffer=<optimized out>, size=<optimized out>)
    at ../../src/venus/vkr_context.c:260
#6  0x00007ffff6fff4c4 in vkr_ring_thread (arg=arg@entry=0x5555599ad0c0) at ../../src/venus/vkr_ring.c:325
#7  0x00007ffff6fff0cb in impl_thrd_routine (p=<optimized out>) at ../../src/mesa/compat/c11/threads_posix.h:87
--Type <RET> for more, q to quit, c to continue without paging--
#8  0x00007ffff618f947 in start_thread (arg=<optimized out>) at pthread_create.c:435
#9  0x00007ffff621fa44 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
(gdb) info args
table = 0x7ffe30c24100
exts = 0x0
count = 1

Signed-off-by: Yonggang Luo luoyonggang@gmail.com

Edited by Yonggang Luo

Merge request reports