Up until now, a CFI-enabled build would require slirp to be compiled as a static library, using the version that is bundled together with QEMU. This is because slirp registers functions as callbacks for QEMU Timers and, when using a system-wide shared libslirp, the type information for the callback is missing. Thus, the timer call produces a false positive with CFI.
slirp 4.7 introduces a new CFI-friendly timer callback that does not pass function pointers within libslirp as callbacks for timers. Check the version number and, if it is new enough, allow using CFI even with a system libslirp. Supersedes: <20220412121337.207203-1-pbonz...@redhat.com> Paolo Paolo Bonzini (5): slirp: bump submodule to 4.7 release net: slirp: introduce a wrapper struct for QemuTimer net: slirp: switch to slirp_new net: slirp: add support for CFI-friendly timer API net: slirp: allow CFI with libslirp >= 4.7 meson.build | 31 ++++++++++--------- net/slirp.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++------- slirp | 2 +- 3 files changed, 92 insertions(+), 26 deletions(-) -- 2.35.1