No description
Find a file
Kir Kolyshkin b8474f294b compel handle_elf(): fix strings sect bounds check
Got this when using compel hgen on arm 32-bit:

Error (compel/src/lib/handle-elf-host.c:115): String section header
@0xf66e11ec is out of [0xf66e1174, 0xf66e1264)

Looking at this, it does not make sense. For the reference,
sizeof(Elf_Shdr) is 0x28, so end position is also well within bounds.

Apparently, the check for string section header bounds is wrong
as the last argument of __ptr_struct_oob() is supposed to be a
region size, not the region end address as it is.

This always worked before because the check was too relaxed, and
compel was never used on 32-bit ARM. This time it didn't work
because of a 32-bit overflow, which helped to find this bug.

This is a fix to commit 6402f03 ("compel: separate get_strings_section
from __handle_elf").

Cc: Dmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-15 00:06:15 +03:00
compel compel handle_elf(): fix strings sect bounds check 2017-03-15 00:06:15 +03:00
contrib scripts/install-debian-packages: add libnet-dev 2017-01-16 11:04:49 +03:00
coredump coredump: Rename dir to coredump 2016-06-28 13:04:58 +03:00
crit crit/decode: set default opts['nopl'] to False 2016-05-30 13:47:54 +03:00
criu compel: Remove size/bsize from blob desc 2017-03-15 00:06:14 +03:00
Documentation .gitignore: update to recent changes 2017-03-14 21:03:22 +03:00
images criu: arch, x86 -- Rename registers mode 2017-03-14 23:58:07 +03:00
include/common compel: Include compel headers as system ones 2017-03-15 00:06:02 +03:00
lib Makefiles: move -Wa,--noexecstack out of CFLAGS 2017-03-15 00:05:55 +03:00
scripts compel: travis -- Disable exec tests 2017-03-14 23:58:20 +03:00
soccr soccr: add one more test to check libsoccr_save/libsoccr_restore 2017-02-01 18:41:29 +03:00
test gitignores: ignore some more generated files 2017-03-15 00:05:55 +03:00
.gitignore Add compel-host to .gitignore 2017-03-14 23:58:21 +03:00
.mailmap repo: Add mailmap file 2012-03-25 23:31:20 +04:00
.travis.yml travis: execute tests on Alpine 2017-03-02 00:19:03 +03:00
COPYING COPYING: fix a typo in a preamble 2016-08-11 16:18:43 +03:00
CREDITS Add the CREDITS file 2012-07-30 13:52:37 +04:00
INSTALL.md Makefile.install: rm unused vars/target 2017-02-06 13:48:49 +03:00
Makefile compel: Move cpu interface to compel 2017-03-15 00:06:03 +03:00
Makefile.compel compel: Add installation 2017-03-15 00:06:13 +03:00
Makefile.config compel: plugins,std -- Add syscall-types.h header 2017-03-14 23:58:11 +03:00
Makefile.install compel: Add installation 2017-03-15 00:06:13 +03:00
Makefile.versions compel: build -- Add @sublevel 2017-03-14 23:58:08 +03:00
README.md Add ascciinema tour on basic criu features. 2016-06-16 16:37:06 +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:

A video tour on basic CRIU features

CRIU introduction

How to contribute