2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-31 06:15:24 +00:00

compel/x86/compat: pack ucontext_ia32

As I've united k_rtsigset_t between native and compat ucontext's,
it's 8-bytes aligned now. We don't care about align of this as
we fill it always with memcpy()/memset(0).
So after those changes, ucontext_ia32 has received new padding
between uc_mcontext and uc_sigmask (4 bytes to align to 8-byte sized
sigmask). Because of this, mask of blocked signals was restored
with shift (wrongly).
Fixes: signalfd00, file_attr tests.

travis-ci: success for 32-bit tests fixes
Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
This commit is contained in:
Dmitry Safonov
2017-01-09 20:19:06 +03:00
committed by Andrei Vagin
parent e84d24d9f2
commit dd6736bd24

View File

@@ -99,7 +99,7 @@ struct ucontext_ia32 {
compat_stack_t uc_stack;
struct rt_sigcontext_32 uc_mcontext;
k_rtsigset_t uc_sigmask; /* mask last for extensibility */
};
} __packed;
struct rt_sigframe_ia32 {
uint32_t pretcode;