CID 996207 (#1 of 1): Out-of-bounds access (OVERRUN)
5. alloc_strlen: Allocating insufficient memory for the terminating null of the string.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
simfs is used in OpenVZ containers, so lets understand it
and don't fail on its meeting.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
No need to include all types here. And this allows
to reuse this header outside of crtools code.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
The macro PAGE_SIZE is declared in the following way in Debian:
#define PAGE_SIZE (sysconf(_SC_PAGESIZE))
that makes it impossible to use the macro as the size of
the array clone_args::stack since this generates the following error:
cc -g -O2 -Wall -Werror -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -iquote ../../lib/arch/arm/include -I../../lib session02.c ../../lib/libzdtmtst.a -o session02
session02.c:70:7: error: variably modified 'stack' at file scope
Cc: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Alexander Kartashov <alekskartashov@parallels.com>
Acked-by: Andrew Vagin <avagin@parallels.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Use a PRI* format specifier to convert an integer of known size
to a string.
Cc: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Alexander Kartashov <alekskartashov@parallels.com>
Acked-by: Andrew Vagin <avagin@parallels.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
pstree.c:273:3: warning: Value stored to 'ret' is never read
ret = 0;
^ ~
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
cr-restore.c:1795:2: warning: Value stored to 'restore_task_vma_len' is
never read
restore_task_vma_len = 0;
^ ~
cr-restore.c:1796:2: warning: Value stored to 'restore_thread_vma_len'
is never read
restore_thread_vma_len = 0;
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
ipc_ns.c:464:3: warning: Memory is never released; potential leak of
memory pointed to by 'values'
return;
^
1 warning generated.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
pie/parasite.c:308:3: warning: Value stored to 'ret' is never read
ret = -1;
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
clang-analyzer sets the environment variable CC
scan-build -plist-html --use-analyzer /usr/bin/clang make
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
If any task has a sysvipc mapping we should make sure, that the
ipc namespace is dumped as well. Otherwise after restore the task
will die.
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Absense of packet and netlink diag is OK at dump -- we can be on
older kernel and will fail later if _really_ need these sockets.
During check stage all diag is expected to be in place.
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
When dumping a unix socket we must make sure, that all connections
are dumped or -x option is used. Currently only peers with non-matching
ids are added into check. Fix this.
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This allows to use it in external projects outside of
types.h header, moreover it's close to what kernel
does too.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This diet types.h and allows to include BITS_PER_LONG
only where really needed. It makes BITS_PER_LONG definition
close to one used in kernel.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
hlist is suitable for hash operations so
extent list.h code. I need it for converter
and this allow me to reuse this header.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This header consists of a number of constants
and a few macro helper. No need to make it
asm/types.h dependant. Instead only include
<stdbool.h> for bool definition as required
by forward fdinfo_per_id (I think this declaration
should live in somewhere else place, not sure
where yet, so I left it untouched).
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Instead of bloating util.h lets move ERR_
helpers to own err.h header. This allow
to reuse it where needed without util.h
inclusion.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Show only image info relevant to given pid. Also reuse
the introduced --pid argument for exec action.
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
The root task must remain a session leader after c/r. The root task
can be executed in another pidns and the sid from another name space
will be invalid.
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Reported-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Actually this test case is a frame work for creating a process tree.
It creates a process tree according with a predefined sequence of
actions.
This test case create the following process tree:
5 5 \_ session02 ( 0)
6 6 \_ session02 ( 1)
8 7 | \_ session02 ( 3)
15 12 | \_ session02 (10)
10 10 \_ session02 ( 5)
11 7 \_ session02 ( 6)
13 12 \_ session02 ( 8)
v2: improve log messages
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
The image data may have no futex provided but we have
no "optional" entry for that (because futex data is
a part of thread_core_entry message).
Still we know that futex length can't be zero thus
make it "optional" by a value -- if length is zero,
we consider it as a sign to skip.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
We've received some requests to create a way to interface with crtools
that doesn't involve forking the utilities, so we're going to create a
linkable library for this. In order to be fair, we plan to allow
proprietary code to link with this library and thus want to change the
licence of the CRIU code base to be LGPL *only* for this library
directory, preserving the rest of the code as GPL. Because creating the
library may involve refactoring, I anticipate that some code that's
currently GPL will have to move into lib/ and become LGPL (and this may
occur in future as well), so I've amended the COPYING file to spell out
for contributors that code outside lib/ is GPL and inside lib/ is LGPL,
but that they give future permission to change the licence to GPL or
LGPL if code has to move into (or out of) lib/, based on acceptance of a
patch into the CRIU code base, so j random developer can't download the
code and make it all LGPL by applying a private patch to move everything
into lib/.
All the Parallels authors have agreed to this, but we have a couple of
non parallels ones on the cc to this email I'd like explicit acks from.
Cc: Qiang Huang <h.huangqiang@huawei.com>
Cc: Andrew Grigorev <andrew@ei-grad.ru>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Acked-by: Qiang Huang <h.huangqiang@huawei.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
The netlink_diag doesn't provide any info about non-connected and
non-bound sockets.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
VMA-s may be protected against read, so rights for such VMA-s should be
changed for dumping and protected back after dumping.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>