This includes decoding of 32-bit sigreturn by 64-bit strace, which previously wasn't done. Added a test for it. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
31 lines
658 B
C
31 lines
658 B
C
/*
|
|
* Check that strace output contains RT_1 RT_3 RT_31 RT_32 here:
|
|
* rt_sigprocmask(SIG_BLOCK, [CHLD RT_1 RT_3 RT_31 RT_32], NULL, 8) = 0
|
|
* and here:
|
|
* sigreturn() (mask [CHLD RT_1 RT_3 RT_31 RT_32]) = 0
|
|
*
|
|
* On x86, both 32-bit and 64-bit strace needs to be checked.
|
|
*/
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <signal.h>
|
|
|
|
void null_handler(int sig)
|
|
{
|
|
}
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
sigset_t set;
|
|
sigemptyset(&set);
|
|
sigaddset(&set, SIGCHLD);
|
|
sigaddset(&set, 33);
|
|
sigaddset(&set, 35);
|
|
sigaddset(&set, 63);
|
|
sigaddset(&set, 64);
|
|
sigprocmask(SIG_BLOCK, &set, NULL);
|
|
signal(SIGWINCH, null_handler);
|
|
raise(SIGWINCH);
|
|
return 0;
|
|
}
|