On Tue, Mar 02, 2021 at 11:31:54AM -0500, Daniele Buono wrote: > > On 3/2/2021 10:38 AM, Daniel P. Berrangé wrote: > > Is this scenario going to upset CFI, or is it happy that 'void *' > > is compatible with 'mytype *', and ok with the intermediate casts > > to/from GCallback ? > > This is a valid scenario. LLVM does offer the ability of considering all > pointer types compatible, and it is being enabled in QEMU. So void* is > compatible to any type* and that would not be considered a fault.
Ok that's good. > Intermediate casts are also fine since you are just passing the pointer but > not using it. The check will happen only when the function is called, at > which point it was cast back to something compatible. Makes sense. So in general, it sounds like breadth of test coverage is fairly important for the CFI jobs, at least if we're exercising different areas of functionality. So I think we do need to be testing more than just one architecture target. The CFI protection is something I'd say is relevant to virtualization use cases, not to emulation use cases https://qemu-project.gitlab.io/qemu/system/security.html IOW, the targets that are important to test are the ones where KVM is available. So that's s390x, ppc, x86, mips, and arm. I think we can probably ignore mips as that's fairly niche. We can also reasonably limit ourselves to only test the 64-bit variants of the target, on the basis that 32-bit is increasingly legacy/niche too. So that gives us ppc64le, x86_64, aarch64 and s390x as the targets we should get CI coverage for CFI. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|