QProcess/Unix: also ban vfork() under TSan

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

Fixes: QTBUG-117533
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>
(cherry picked from commit a0a29695ab018118f194b3d332ae9b0065c7b1a1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Thiago Macieira 2023-11-02 07:45:57 -07:00 committed by Qt Cherry-pick Bot
parent 69487198ef
commit 8ef3ff1c62

View File

@ -516,6 +516,10 @@ static int useForkFlags(const QProcessPrivate::UnixExtras *unixExtras)
// ASan writes to global memory, so we mustn't use vfork().
return FFD_USE_FORK;
#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