lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 6 Apr 2016 19:29:28 +0300 From: Dmitry Safonov <dsafonov@...tuozzo.com> To: <linux-kernel@...r.kernel.org> CC: <luto@...capital.net>, <tglx@...utronix.de>, <mingo@...hat.com>, <hpa@...or.com>, <x86@...nel.org>, <shuahkh@....samsung.com>, <bp@...en8.de>, <akpm@...ux-foundation.org>, <linux-kselftest@...r.kernel.org>, <gorcunov@...nvz.org>, <xemul@...tuozzo.com>, <khorenko@...tuozzo.com>, <0x7f454c46@...il.com>, Dmitry Safonov <dsafonov@...tuozzo.com> Subject: [PATCH 0/2] x86: add arch_prctl to switch between native/compat modes With those patches it becomes possible to tell the kernel in which mode current task is. I need it for compatibility process C/R: restorer is native x86_64 process, that maps vmas, restore task parameters, does clone to add threads and so on. To restore 32-bit application, that runs on x86_64 (in compatibility mode), I need to set proper CS selector for USER32_CS and tell the kernel, that the process is now in compat mode. Switching selector isn't a hard task (and it's done in other selftests with long jump/lret). This patch makes possible to tell Linux kernel in which mode you are. I also did vdso/vvar blob remapping on compat <-> native switch. This part isn't really needed by CRIU, as on restore stage we already have dumped vdso/vvar vma images. So, this part is for other processes that may need to switch their mode. (I will drop this part if no one else needs this possibility). I add a selftest and I did CRIU branch that uses this to C/R 32-bit processes: https://github.com/0x7f454c46/criu/tree/compat-2 There are dozens of patches there and I will prepare them for CRIU master branch after mainstreaming this switching patch. Dmitry Safonov (2): x86/arch_prctl: add ARCH_SET_{COMPAT,NATIVE} to change compatible mode x86/tools/testing: add test for ARCH_SET_COMPAT arch/x86/entry/vdso/vma.c | 76 ++++-- arch/x86/include/asm/vdso.h | 5 + arch/x86/include/uapi/asm/prctl.h | 6 + arch/x86/kernel/process_64.c | 87 ++++++ tools/testing/selftests/x86/Makefile | 1 + .../testing/selftests/x86/arch_prctl_set_compat.c | 295 +++++++++++++++++++++ 6 files changed, 453 insertions(+), 17 deletions(-) create mode 100644 tools/testing/selftests/x86/arch_prctl_set_compat.c -- 2.7.4
Powered by blists - more mailing lists