[MSan] Fix wrong unpoison size in SignalAction (#144071)

MSan should unpoison the parameters of extended signal handlers. 
However, MSan unpoisoned the second parameter with the wrong size 
`sizeof(__sanitizer_sigaction)`, inconsistent with its real type 
`siginfo_t`.

This commit fixes this issue by correcting the size to 
`sizeof(__sanitizer_siginfo)`.
This commit is contained in:
Kunqiu Chen
2025-06-18 14:53:33 +08:00
committed by GitHub
parent 74687180dd
commit 10f29a6072

View File

@@ -1127,7 +1127,7 @@ static void SignalAction(int signo, void *si, void *uc) {
SignalHandlerScope signal_handler_scope;
ScopedThreadLocalStateBackup stlsb;
UnpoisonParam(3);
__msan_unpoison(si, sizeof(__sanitizer_sigaction));
__msan_unpoison(si, sizeof(__sanitizer_siginfo));
__msan_unpoison(uc, ucontext_t_sz(uc));
typedef void (*sigaction_cb)(int, void *, void *);