From 10f29a607205c0c17ee9249a66feb63f0fdae182 Mon Sep 17 00:00:00 2001 From: Kunqiu Chen Date: Wed, 18 Jun 2025 14:53:33 +0800 Subject: [PATCH] [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)`. --- compiler-rt/lib/msan/msan_interceptors.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler-rt/lib/msan/msan_interceptors.cpp b/compiler-rt/lib/msan/msan_interceptors.cpp index 76255cdb742a..f94d3cb79aa0 100644 --- a/compiler-rt/lib/msan/msan_interceptors.cpp +++ b/compiler-rt/lib/msan/msan_interceptors.cpp @@ -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 *);