Add a VFIO selftest calloc_assert() helper, then use it in places that open-code calloc() or malloc() followed by VFIO_ASSERT_NOT_NULL().
Use that helper to replace initialized variable-length stack buffers in vfio_pci_device.c with heap allocations. This avoids GCC rejecting initialized VLAs and avoids treating a u8 buffer as a possibly under-aligned VFIO request struct. Changes in v3: - Add the calloc_assert() helper as a precursor patch. - Convert existing VFIO selftest calloc() assertion sites. - Update the VLA fix to use calloc_assert(). - Link to v2: https://patch.msgid.link/20260615-scratch-amastro-vfio-selftests-avoid-vlas-v2-1-4e4df4629...@fb.com Changes in v2: - Reverse xmas tree variable ordering - Link to v1: https://patch.msgid.link/20260612-scratch-amastro-vfio-selftests-avoid-vlas-v1-1-ba3acb635...@fb.com Signed-off-by: Alex Mastro <[email protected]> --- Alex Mastro (2): vfio: selftests: Add calloc_assert() helper vfio: selftests: Avoid VLAs .../selftests/vfio/lib/include/libvfio/assert.h | 10 +++++++ tools/testing/selftests/vfio/lib/iommu.c | 12 +++----- tools/testing/selftests/vfio/lib/iova_allocator.c | 4 +-- tools/testing/selftests/vfio/lib/sysfs.c | 3 +- tools/testing/selftests/vfio/lib/vfio_pci_device.c | 32 ++++++++++++---------- .../vfio/vfio_pci_device_init_perf_test.c | 4 +-- 6 files changed, 35 insertions(+), 30 deletions(-) --- base-commit: a26b499b757cfc8bbff1088bb1b844639e250893 change-id: 20260612-scratch-amastro-vfio-selftests-avoid-vlas-395eb3dcb3ab Best regards, -- Alex Mastro <[email protected]>

