DPDK and signal safety
The recent CVE in OpenSSH related signal safety piqued my interest in any possible issues in DPDK.
While reviewing:
- The use of SIGBUS in linux/eal_dev is problematic.
It is using not signal safe routines such as rte_spinlock and logging. This was done as part of hotplug support.
- The use of SIGBUS in eal_memmalloc is ok, since it is limited in scope and only while alloc_seg()
- Tap uses rt sig and is sigsafe since only updating flag.
- FPGA driver is catching SIGINT in update_flash.
it calls dev_info which is not sig safe.
SIGINT is not enough here, what about SIGTERM or SIGHUP? And overriding application signals does not appear to be documented.