2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-30 22:05:36 +00:00
Cyrill Gorcunov d1db4faf9b vdso: Don't fail if pagemap is not accessbile
We use page frame number to detect vDSO which has been remapped
in-place from runtime vDSO during restore. In such case if the
kernel is younger than 3.16 the "[vdso]" mark won't be reported
in procfs output.

Still to address recently reported CVEs and be able to run CRIU
in unprivileged mode we need to handle vDSO without pagemap access
and here is the deal -- when we find VMA which "looks like" vDSO
we try to scan it for vDSO symbols and if it matches we restore
its status without PFN access.

Here is some details on @pagemap access in-kernel history:

 - @pagemap introduced in commit 85863e475e59 where anyone
   which can attach to a task via ptrace is allowed to read
   data from @pagemap (Feb 4 2008, v2.6.25-rc1)

 - in commit 006ebb40d3d65 ptrace attach rule has been changed
   into ptrace read permission (May 19 2008, v2.6.27-rc1)

 - in commit ab676b7d6fbf4 opening of @pagemap become guarded
   with CAP_SYS_ADMIN because of leak of physical addresses
   into userspace (Mar 9 2015, v4.0-rc5)

 - in commit 1c90308e7a77a opening of @pagemap become available
   for regular users again (with ptrace read permission) but
   physical addresses of pages are hidden from non-privileged
   userd (Sep 8 2015, v4.3-rc1)

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Looks-good-to-me: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-12-24 14:40:05 +03:00
2015-11-05 15:35:17 +03:00
2012-03-25 23:31:20 +04:00
2015-07-23 15:12:50 +03:00
2015-10-27 22:51:09 +03:00
2013-04-01 12:29:06 +04:00
2015-12-24 14:39:58 +03:00
2014-12-19 18:58:46 +03:00
2015-12-24 14:39:58 +03:00
2015-12-24 14:39:58 +03:00
2012-07-30 13:52:37 +04:00
2015-12-16 18:14:57 +03:00
2013-04-30 20:17:55 +04:00
2015-12-24 14:39:58 +03:00
2014-09-30 21:48:10 +04:00
2015-10-19 12:42:29 +03:00
2014-09-30 21:48:13 +04:00
2015-08-18 18:17:31 +03:00
2014-09-30 21:48:13 +04:00
2015-12-16 18:22:50 +03:00
2015-12-08 14:52:26 +03:00
2015-08-18 18:17:31 +03:00
2015-12-24 14:39:58 +03:00
2015-12-15 15:03:07 +03:00
2015-12-24 14:39:58 +03:00
2015-12-24 14:40:04 +03:00
2015-11-26 17:04:37 +03:00
2015-11-12 16:31:19 +03:00
2014-09-03 20:56:58 +04:00
2015-12-15 14:00:09 +03:00
2015-10-09 18:28:00 +03:00
2015-12-08 14:52:26 +03:00
2015-03-16 15:58:32 +03:00
2015-12-24 14:39:58 +03:00
2015-05-19 22:38:06 +03:00
2014-09-30 21:48:13 +04:00
2014-09-30 21:48:13 +04:00
2013-11-29 15:36:07 +04:00
2015-12-08 15:12:19 +03:00
2015-12-24 14:40:04 +03:00
2015-10-05 13:16:14 +03:00

CRIU (Checkpoint and Restore in Userspace)

An utility to checkpoint/restore tasks. Using this tool, you can freeze a running application (or part of it) and checkpoint it to a hard drive as a collection of files. You can then use the files to restore and run the application from the point it was frozen at. The distinctive feature of the CRIU project is that it is mainly implemented in user space.

The project home is at http://criu.org.

Pages worth starting with are:

How to contribute

Description
No description provided
Readme 81 MiB
Languages
C 86%
Python 6.1%
Java 2.6%
Shell 2.6%
Makefile 2%
Other 0.7%