bluca / valgrind-dpdk

Valgrind patched with support for DPDK (and rte_*alloc). STATICALLY LINKED: use --soname-synonyms=somalloc=NONE - DINAMICALLY LINKED: SONAME must be either lib*dpdk.so* librte_malloc.so*. NOTE: memory alignment is respected and implemented, but NUMA socket is ignored.
GNU General Public License v2.0
25 stars 3 forks source link

Bug 396887 - arch_prctl should return EINVAL on unknown option. #3

Closed Grandmother closed 5 years ago

Grandmother commented 5 years ago

This is just a cherry-pick of commit 21a01b13e259b9a43f10f0046b2b3f409c11ea75

Currently archprctl calls VG(core_panic) when it sees an unknown arch_prctl option which kills the process. glibc uses arch_prctl with an (as yet) unknown option to see if the kernel supports CET. This breaks any application running under valgrind on x86_64 with:

valgrind: the 'impossible' happened: Unsupported arch_prctl option

Thread 1: status = VgTs_Runnable (lwpid 19934) ==19934== at 0x121A15: get_cet_status (cpu-features.c:28) ==19934== by 0x121A15: init_cpu_features (cpu-features.c:474) ==19934== by 0x121A15: dl_platform_init (dl-machine.h:228) ==19934== by 0x121A15: _dl_sysdep_start (dl-sysdep.c:231) ==19934== by 0x10A1D7: _dl_start_final (rtld.c:413) ==19934== by 0x10A1D7: _dl_start (rtld.c:520)

We already handle all known options. It would be better to do as the kernel does and just return failure with EINVAL instead.