QProcess/Unix: also ban vfork() under TSan

Complements 94ec17436cbdab52ed85e15ea197b538541b14ca for the ASan logic
(52ed6af5277100ed5b9a4f4231b94013ce539a2c for the code change).

Fixes: QTBUG-117533
Pick-to: 6.6
Change-Id: I09c3950e719e4b259bc7fffd1793d59dbdbfe82a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Thiago Macieira 2023-11-02 07:45:57 -07:00
parent ac6af2f322
commit a0a29695ab

View File

@ -622,6 +622,10 @@ inline bool globalUsingVfork() noexcept
// ASan writes to global memory, so we mustn't use vfork().
return false;
#endif
#if defined(__SANITIZE_THREAD__) || __has_feature(thread_sanitizer)
// Ditto, apparently
return false;
#endif
#if defined(Q_OS_LINUX) && !QT_CONFIG(forkfd_pidfd)
// some broken environments are known to have problems with the new Linux
// API, so we have a way for users to opt-out during configure time (see