]> git.ipfire.org Git - thirdparty/lxc.git/log
thirdparty/lxc.git
6 years agostart: generate new boot id on container start
Christian Brauner [Wed, 5 Jun 2019 21:43:53 +0000 (23:43 +0200)] 
start: generate new boot id on container start

Closes #3027.

BugLink: https://bugs.launchpad.net/bugs/1831258
Cc: Dimitri John Ledkov <xnox@ubuntu.com>
Cc: Scott Moser <smoser@ubuntu.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoproposed fix for #2892 - fix lxcbasename in lxc/lxccontainer.c
Paul Romlow [Wed, 5 Jun 2019 18:28:21 +0000 (13:28 -0500)] 
proposed fix for #2892 - fix lxcbasename in lxc/lxccontainer.c

Signed-off-by: Paul Romlow <paul@romlow.com>
6 years agoMake /tmp accessible to any user
Rachid Koucha [Wed, 5 Jun 2019 11:04:11 +0000 (13:04 +0200)] 
Make /tmp accessible to any user

/tmp created with "rwxrwxrwt" mode

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
6 years agocgroups: prevent segfault
Christian Brauner [Wed, 5 Jun 2019 07:27:45 +0000 (09:27 +0200)] 
cgroups: prevent segfault

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: fix handler memory leak at lxc_init failed
LiFeng [Wed, 5 Jun 2019 04:44:17 +0000 (00:44 -0400)] 
start: fix handler memory leak at lxc_init failed

Signed-off-by: LiFeng <lifeng68@huawei.com>
6 years agolxc_usernsexec: continuing after unshare fails leads to confusing and misleading...
Brian McQueen [Tue, 4 Jun 2019 13:46:37 +0000 (06:46 -0700)] 
lxc_usernsexec: continuing after unshare fails leads to confusing and misleading error messages

Signed-off-by: Brian McQueen <bmcqueen@linkedin.com>
6 years agogetgrgid_r fails with ERANGE if buffer is too small. Retry with a larger buffer.
Alexander Kriventsov [Mon, 3 Jun 2019 15:11:56 +0000 (18:11 +0300)] 
getgrgid_r fails with ERANGE if buffer is too small. Retry with a larger buffer.

Signed-off-by: Alexander Kriventsov <akriventsov@nic.ru>
6 years agolxc_clone: add a comment about stack size
Tycho Andersen [Wed, 29 May 2019 15:36:51 +0000 (09:36 -0600)] 
lxc_clone: add a comment about stack size

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agolxc_clone: bump stack size to 8MB
Tycho Andersen [Wed, 29 May 2019 14:47:35 +0000 (08:47 -0600)] 
lxc_clone: bump stack size to 8MB

This is the default thread size for glibc, so it is reasonable to match
that when we clone().

Mostly this is a science experiment suggested by brauner, and who doesn't
love science?

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agofix issue 2765
Alexander Kriventsov [Tue, 28 May 2019 12:58:51 +0000 (15:58 +0300)] 
fix issue 2765

Signed-off-by: Alexander Kriventsov <akriventsov@nic.ru>
6 years agocgroups: handle offline cpus in v1 hierarchy
Christian Brauner [Fri, 24 May 2019 13:59:57 +0000 (15:59 +0200)] 
cgroups: handle offline cpus in v1 hierarchy

Handle offline cpus in v1 hierarchy.

In addition to isolated cpus we also need to account for offline cpus when our
ancestor cgroup is the root cgroup and we have not been initialized yet.

Closes #2953.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxc_clone: get rid of some indirection
Tycho Andersen [Thu, 9 May 2019 18:18:10 +0000 (14:18 -0400)] 
lxc_clone: get rid of some indirection

We have a do_clone(), which just calls a void f(void *) that it gets
passed. We build up a struct consisting of two args that are just the
actual arg and actual function. Let's just have the syscall do this for us.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agodoc: add a little note about shared ns + LSMs
Tycho Andersen [Thu, 9 May 2019 18:13:40 +0000 (14:13 -0400)] 
doc: add a little note about shared ns + LSMs

We should add a little not about the race in the previous patch.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agolxc_clone: pass non-stack allocated stack to clone
Tycho Andersen [Thu, 9 May 2019 17:52:30 +0000 (13:52 -0400)] 
lxc_clone: pass non-stack allocated stack to clone

There are two problems with this code:

1. The math is wrong. We allocate a char *foo[__LXC_STACK_SIZE]; which
   means it's really sizeof(char *) * __LXC_STACK_SIZE, instead of just
   __LXC_STACK SIZE.

2. We can't actually allocate it on our stack. When we use CLONE_VM (which
   we do in the shared ns case) that means that the new thread is just
   running one page lower on the stack, but anything that allocates a page
   on the stack may clobber data. This is a pretty short race window since
   we just do the shared ns stuff and then do a clone without CLONE_VM.

However, it does point out an interesting possible privilege escalation if
things aren't configured correctly: do_share_ns() sets up namespaces while
it shares the address space of the task that spawned it; once it enters the
pid ns of the thing it's sharing with, the thing it's sharing with can
ptrace it and write stuff into the host's address space. Since the function
that does the clone() is lxc_spawn(), it has a struct cgroup_ops* on the
stack, which itself has function pointers called later in the function, so
it's possible to allocate shellcode in the address space of the host and
run it fairly easily.

ASLR doesn't mitigate this since we know exactly the stack offsets; however
this patch has the kernel allocate a new stack, which will help. Of course,
the attacker could just check /proc/pid/maps to find the location of the
stack, but they'd still have to guess where to write stuff in.

The thing that does prevent this is the default configuration of apparmor.
Since the apparmor profile is set in the second clone, and apparmor
prevents ptracing things under a different profile, attackers confined by
apparmor can't do this. However, if users are using a custom configuration
with shared namespaces, care must be taken to avoid this race.

Shared namespaces aren't widely used now, so perhaps this isn't a problem,
but with the advent of crio-lxc for k8s, this functionality will be used
more.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agoconfigure: remove additional comma
Christian Brauner [Tue, 21 May 2019 13:58:03 +0000 (15:58 +0200)] 
configure: remove additional comma

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: remove unused label
Christian Brauner [Sat, 18 May 2019 10:21:18 +0000 (12:21 +0200)] 
start: remove unused label

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxccontainer: remove unused function
Christian Brauner [Sat, 18 May 2019 10:05:36 +0000 (12:05 +0200)] 
lxccontainer: remove unused function

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxccontainer: cleanup attach functions
Christian Brauner [Fri, 17 May 2019 05:50:45 +0000 (07:50 +0200)] 
lxccontainer: cleanup attach functions

Specifically, refloat function arguments and remove useless comments.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoattach: do not reload container
Christian Brauner [Thu, 16 May 2019 13:29:41 +0000 (15:29 +0200)] 
attach: do not reload container

Let lxc_attach() reuse the already initialized container.

Closes https://github.com/lxc/lxd/issues/5755.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: Fixes bug that stopped down hook from running for phys netdevs
Thomas Parrott [Wed, 15 May 2019 16:09:47 +0000 (17:09 +0100)] 
network: Fixes bug that stopped down hook from running for phys netdevs

Signed-off-by: Thomas Parrott <thomas.parrott@canonical.com>
6 years agonetwork: move phys netdevs back to monitor's net ns rather than pid 1's
Thomas Parrott [Wed, 15 May 2019 14:54:12 +0000 (15:54 +0100)] 
network: move phys netdevs back to monitor's net ns rather than pid 1's

Updates lxc_restore_phys_nics_to_netns() to move phys netdevs back to the monitor's network namespace rather than the previously hardcoded PID 1 net ns.

This is to fix instances where LXC is started inside a net ns different from PID 1 and physical devices are moved back to a different net ns when the container is shutdown than the net ns than where the container was started from.

Signed-off-by: Thomas Parrott <thomas.parrott@canonical.com>
6 years agoconfigure: handle checks when cross-compiling
Christian Brauner [Wed, 15 May 2019 13:44:36 +0000 (15:44 +0200)] 
configure: handle checks when cross-compiling

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoError prone semicolon
Rachid Koucha [Mon, 13 May 2019 12:57:02 +0000 (14:57 +0200)] 
Error prone semicolon

Suppressed error prone semicolon in SYSTRACE() macro.

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
6 years agoUse %m instead of strerror() when available
Rachid Koucha [Mon, 13 May 2019 11:21:14 +0000 (13:21 +0200)] 
Use %m instead of strerror() when available

Use %m under HAVE_M_FORMAT instead of strerror()

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
6 years agoConfig: check for %m availability
Rachid Koucha [Mon, 13 May 2019 11:13:18 +0000 (13:13 +0200)] 
Config: check for %m availability

GLIBC supports %m to avoid calling strerror(). Using it saves some code space.
==> This check will define HAVE_M_FORMAT to be use wherever possible (e.g. log.h)

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
6 years agoinitutils: Fix memleak on realloc failure
Rikard Falkeborn [Sun, 12 May 2019 00:22:15 +0000 (02:22 +0200)] 
initutils: Fix memleak on realloc failure

Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
6 years agozfs: Fix return value on zfs_snapshot error
Rikard Falkeborn [Sat, 11 May 2019 23:47:56 +0000 (01:47 +0200)] 
zfs: Fix return value on zfs_snapshot error

Returning -1 in a function with return type bool is the same as
returning true. Change to return false to indicate error properly.

Detected with cppcheck.

Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
6 years agolvm: Fix return value if lvm_create_clone fails
Rikard Falkeborn [Sat, 11 May 2019 23:46:27 +0000 (01:46 +0200)] 
lvm: Fix return value if lvm_create_clone fails

Returning -1 in a function with return type bool is the same as
returning true. Change to return false to indicate error properly.

Detected with cppcheck.

Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
6 years agocriu: Remove unnecessary return after _exit()
Rikard Falkeborn [Sat, 11 May 2019 23:39:51 +0000 (01:39 +0200)] 
criu: Remove unnecessary return after _exit()

Since _exit() will terminate, the return statement is dead code. Also,
returning -1 from a function with bool as return type is confusing.

Detected with cppcheck.

Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
6 years agocriu: Use -v4 instead of -vvvvvv
Radostin Stoyanov [Fri, 10 May 2019 21:25:54 +0000 (22:25 +0100)] 
criu: Use -v4 instead of -vvvvvv

CRIU has only 4 levels of verbosity (errors, warnings, info, debug).
Thus, using `-v4` is more appropriate.

https://criu.org/Logging

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
6 years agoOption --busybox-path instead of --bbpath
Rachid Koucha [Fri, 10 May 2019 19:28:35 +0000 (21:28 +0200)] 
Option --busybox-path instead of --bbpath

As suggested during the review.

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
6 years agolxccontainer: do not display if missing privileges
Rachid Koucha [Fri, 10 May 2019 16:56:12 +0000 (18:56 +0200)] 
lxccontainer: do not display if missing privileges

lxc-ls without root privileges on privileged containers should not display
information. In lxc_container_new(), ongoing_create()'s result is not checked
for all possible returned values. Hence, an unprivileged user can send command
messages to the container's monitor. For example:

$ lxc-ls -P /.../tests -f
NAME     STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED
ctr -     0         -      -    -    false
$ sudo lxc-ls -P /.../tests -f
NAME     STATE   AUTOSTART GROUPS IPV4      IPV6 UNPRIVILEGED
ctr RUNNING 0         -      10.0.3.51 -    false

After this change:

$ lxc-ls -P /.../tests -f      <-------- No more display without root privileges
$ sudo lxc-ls -P /.../tests -f
NAME     STATE   AUTOSTART GROUPS IPV4      IPV6 UNPRIVILEGED
ctr RUNNING 0         -      10.0.3.37 -    false
$

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoNew --bbpath option and unecessary --rootfs checks
Rachid Koucha [Fri, 10 May 2019 15:01:13 +0000 (17:01 +0200)] 
New --bbpath option and unecessary --rootfs checks

. Add the "--bbpath" option to pass an alternate busybox pathname instead of the one found from ${PATH}.
. Take this opportunity to add some formatting in the usage display
. As a try is done to pick rootfs from the config file and set it to ${path}/rootfs, it is unnecessary to make it mandatory

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
6 years agocoding style: update
Christian Brauner [Fri, 10 May 2019 11:15:25 +0000 (13:15 +0200)] 
coding style: update

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoRedirect error messages to stderr
Rachid Koucha [Fri, 10 May 2019 05:39:03 +0000 (07:39 +0200)] 
Redirect error messages to stderr

Some error messages were not redirected to stderr.
Moreover, do "exit 0" instead of "exit 1" when "help" option is passed.

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
6 years agostart: use CLONE_PIDFD
Christian Brauner [Thu, 9 May 2019 17:40:23 +0000 (19:40 +0200)] 
start: use CLONE_PIDFD

Use CLONE_PIDFD when possible.

Note the clone() syscall ignores unknown flags which is usually a design
mistake. However, for us this bug is a feature since we can just pass the flag
along and see whether the kernel has given us a pidfd.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: Restores phys device MTU on container shutdown
Thomas Parrott [Thu, 9 May 2019 15:40:08 +0000 (16:40 +0100)] 
network: Restores phys device MTU on container shutdown

The phys devices will now have their original MTUs recorded at start and restored at shutdown.

This is to protect the original phys device from having any container level MTU customisation being applied to the device once it is restored to the host.

Signed-off-by: Thomas Parrott <thomas.parrott@canonical.com>
6 years agonamespace: support CLONE_PIDFD with lxc_clone()
Christian Brauner [Thu, 9 May 2019 15:09:51 +0000 (17:09 +0200)] 
namespace: support CLONE_PIDFD with lxc_clone()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: Adds mtu support for phys and macvlan types
Thomas Parrott [Thu, 9 May 2019 14:34:20 +0000 (15:34 +0100)] 
network: Adds mtu support for phys and macvlan types

Signed-off-by: Thomas Parrott <thomas.parrott@canonical.com>
6 years agoclone: add infrastructure for CLONE_PIDFD
Christian Brauner [Thu, 9 May 2019 13:01:27 +0000 (15:01 +0200)] 
clone: add infrastructure for CLONE_PIDFD

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eac7078a0fff1e72cf2b641721e3f55ec7e5e21e

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoraw_syscalls: simplify assembly
Christian Brauner [Thu, 9 May 2019 13:00:32 +0000 (15:00 +0200)] 
raw_syscalls: simplify assembly

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Co-developed-by: David Howells <dhowells@redhat.com>
Signed-off-by: David Howells <dhowells@redhat.com>
6 years agoutils: improve switch_to_ns()
Christian Brauner [Tue, 12 Mar 2019 16:51:50 +0000 (17:51 +0100)] 
utils: improve switch_to_ns()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoDevices created in rootfs instead of rootfs/dev
Rachid Koucha [Tue, 7 May 2019 14:03:02 +0000 (16:03 +0200)] 
Devices created in rootfs instead of rootfs/dev

Added /dev in the mknod commands.

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
6 years agoraw_syscalls: add initial support for pidfd_send_signal()
Christian Brauner [Mon, 6 May 2019 08:49:31 +0000 (10:49 +0200)] 
raw_syscalls: add initial support for pidfd_send_signal()

Well, I added this syscall so we better use it. :)

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocompiler: add __returns_twice attribute
Christian Brauner [Sat, 4 May 2019 11:35:51 +0000 (13:35 +0200)] 
compiler: add __returns_twice attribute

The returns_twice attribute tells the compiler that a function may return more
than one time. The compiler will ensure that all registers are dead before
calling such a function and will emit a warning about the variables that may be
clobbered after the second return from the function. Examples of such functions
are setjmp and vfork. The longjmp-like counterpart of such function, if any,
might need to be marked with the noreturn attribute.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agotree-wide: make socket SOCK_CLOEXEC
Christian Brauner [Fri, 3 May 2019 18:35:02 +0000 (20:35 +0200)] 
tree-wide: make socket SOCK_CLOEXEC

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonamespaces: allow a pathname to a nsfd for namespace to share
Serge Hallyn [Thu, 2 May 2019 01:17:23 +0000 (18:17 -0700)] 
namespaces: allow a pathname to a nsfd for namespace to share

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
6 years agoseccomp: notifier fixes
Christian Brauner [Tue, 30 Apr 2019 22:36:41 +0000 (00:36 +0200)] 
seccomp: notifier fixes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: Fixes bug in macvlan mode selection
tomponline [Mon, 29 Apr 2019 14:11:17 +0000 (15:11 +0100)] 
network: Fixes bug in macvlan mode selection

Signed-off-by: tomponline <thomas.parrott@canonical.com>
6 years agotests: Updates .gitignore to ignore test build artefacts
tomponline [Mon, 29 Apr 2019 08:49:07 +0000 (09:49 +0100)] 
tests: Updates .gitignore to ignore test build artefacts

Signed-off-by: tomponline <thomas.parrott@canonical.com>
6 years agonetwork: Fixes vlan hook script
tomponline [Mon, 29 Apr 2019 08:44:57 +0000 (09:44 +0100)] 
network: Fixes vlan hook script

Signed-off-by: tomponline <thomas.parrott@canonical.com>
6 years agonetwork: Adds upscript handling for vlan network type
tomponline [Fri, 26 Apr 2019 17:01:53 +0000 (18:01 +0100)] 
network: Adds upscript handling for vlan network type

Signed-off-by: tomponline <thomas.parrott@canonical.com>
6 years agonetwork: Fixes a little typo in an error message
tomponline [Fri, 26 Apr 2019 16:49:32 +0000 (17:49 +0100)] 
network: Fixes a little typo in an error message

Signed-off-by: tomponline <thomas.parrott@canonical.com>
6 years agostart: silence clang
Christian Brauner [Thu, 25 Apr 2019 15:20:39 +0000 (17:20 +0200)] 
start: silence clang

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoaf_unix: backport helper functions
Christian Brauner [Thu, 25 Apr 2019 12:51:51 +0000 (14:51 +0200)] 
af_unix: backport helper functions

This backports various helpers associated with seccomp notify to make
maintenance easier.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocommands: partially backport seccomp notify
Christian Brauner [Sun, 21 Apr 2019 19:03:51 +0000 (21:03 +0200)] 
commands: partially backport seccomp notify

This backports seccomp notify into various parts of the codebase as a pure nop
to make maintenance easier.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoFix 'zfs get' command order
pgauret [Wed, 24 Apr 2019 16:29:21 +0000 (18:29 +0200)] 
Fix 'zfs get' command order

Another case of calling 'zfs get' which requires reordering arguments to work with latest zfs.

Signed-off-by: Paul Gauret <pgauret@yahoo.com>
6 years agolxc-start: remove bad doc
Tycho Andersen [Tue, 23 Apr 2019 14:48:29 +0000 (08:48 -0600)] 
lxc-start: remove bad doc

We don't in fact exit(1) if this is not specified, and it wouldn't make
sense to, since most people probably don't specify this.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agonetns_getifaddrs: adapt to kernel changes
Christian Brauner [Fri, 19 Apr 2019 13:24:51 +0000 (15:24 +0200)] 
netns_getifaddrs: adapt to kernel changes

s/NETLINK_DUMP_STRICT_CHK/NETLINK_GET_STRICT_CHK/g

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: do lxc.mount.entry mounts right after lxc.mount.fstab
Felix Abecassis [Tue, 16 Apr 2019 21:40:03 +0000 (14:40 -0700)] 
conf: do lxc.mount.entry mounts right after lxc.mount.fstab

These configuration options use the same syntax and therefore it seems
more intuitive to have the same behavior for both of them, which is
not the case today since mount hooks and autodev mounts are called
between the two.

See: https://github.com/lxc/lxc/issues/2932

Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
6 years agostorage: update zfs
pgauret [Mon, 15 Apr 2019 07:18:42 +0000 (09:18 +0200)] 
storage: update zfs

Change zfs arguments. This also works with older zfs versions, tested with
zfs 0.7.9-3 on Ubuntu 18.10.

Closes #2916.

Signed-off-by: Paul Gauret <pgauret@yahoo.com>
[christian.brauner@ubuntu.com: adapt commit message and add Signed-off-by for Paul]
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostorage: prevent unitialized variable warning
Christian Brauner [Sun, 14 Apr 2019 13:46:12 +0000 (15:46 +0200)] 
storage: prevent unitialized variable warning

We can simply fix this issue by switching to our cleanup macros instead of
manually freeing the memory.

Closes #2912.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agofix: #2927 api doc generation fails under out of source build.
yosukesan [Sat, 6 Apr 2019 03:42:41 +0000 (12:42 +0900)] 
fix: #2927 api doc generation fails under out of source build.

Signed-off-by: yosukesan <y.otsuki30@gmail.com>
6 years agodoc: update Japanese lxc-user-nic manpage
KATOH Yasufumi [Fri, 5 Apr 2019 17:00:53 +0000 (02:00 +0900)] 
doc: update Japanese lxc-user-nic manpage

Update for commit db74bbd

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
6 years agolxc-user-nic: validate request
Christian Brauner [Fri, 5 Apr 2019 12:11:43 +0000 (14:11 +0200)] 
lxc-user-nic: validate request

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
6 years agodoc: update lxc-user-nic manpage
Christian Brauner [Fri, 5 Apr 2019 12:01:12 +0000 (14:01 +0200)] 
doc: update lxc-user-nic manpage

Closes #1823.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
6 years agolxc-user-nic: small tweaks
Christian Brauner [Fri, 5 Apr 2019 11:30:28 +0000 (13:30 +0200)] 
lxc-user-nic: small tweaks

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
6 years agoFix user namespace pdeathsig handling
Felix Abecassis [Thu, 4 Apr 2019 04:09:53 +0000 (21:09 -0700)] 
Fix user namespace pdeathsig handling

Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
6 years agonetwork: fix network device removal
Christian Brauner [Tue, 2 Apr 2019 21:26:59 +0000 (23:26 +0200)] 
network: fix network device removal

Closes #2849.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolvm: Updates lvcreate to wipe signatures if supported, fallbacks to old command if...
tomponline [Tue, 19 Mar 2019 18:14:25 +0000 (18:14 +0000)] 
lvm: Updates lvcreate to wipe signatures if supported, fallbacks to old command if not.

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agotravis: Attempt to fix src/lxc/cmd/lxc_init.c:251: undefined reference to `pthread_si...
tomponline [Tue, 19 Mar 2019 13:38:55 +0000 (13:38 +0000)] 
travis: Attempt to fix src/lxc/cmd/lxc_init.c:251: undefined reference to `pthread_sigmask

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agoTravis: Adds -Wall and -Werror gcc flags to automatic build.
tomponline [Tue, 19 Mar 2019 11:40:47 +0000 (11:40 +0000)] 
Travis: Adds -Wall and -Werror gcc flags to automatic build.

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agohooks/nvidia: handle spaces in NVIDIA_REQUIRE variables
Felix Abecassis [Tue, 16 Apr 2019 20:58:51 +0000 (13:58 -0700)] 
hooks/nvidia: handle spaces in NVIDIA_REQUIRE variables

Previously, environment variables with a space where splitted.

Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
6 years agoraw_syscalls: lxc_raw_clone()
Christian Brauner [Tue, 16 Apr 2019 21:32:03 +0000 (23:32 +0200)] 
raw_syscalls: lxc_raw_clone()

Account for different trap number on 32bit SPARC.

Link: https://bugs.gentoo.org/656368
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #2944 from brauner/lxc/stable-3.0
Christian Brauner [Fri, 19 Apr 2019 09:00:04 +0000 (11:00 +0200)] 
Merge pull request #2944 from brauner/lxc/stable-3.0

cgfsng: backport new cgroup handling logic

6 years agocgfsng: backport new cgroup handling logic 2944/head
Christian Brauner [Fri, 19 Apr 2019 02:46:09 +0000 (04:46 +0200)] 
cgfsng: backport new cgroup handling logic

BugLink: https://bugs.launchpad.net/bugs/1825155
This will allow us to better support cgroup2 layouts on stable-3.0.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocgroups: fix potential nullderef
Christian Brauner [Sun, 14 Apr 2019 13:35:45 +0000 (15:35 +0200)] 
cgroups: fix potential nullderef

The child_path variable is initialized very late in the function so jumping to
the on_error label would cause a nullderef. With the cleanup macros we can
simplify this function to simply do direct returns and avoid that whole issue.

Closes #2935.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocgfsng: fix cgroup2 handling
Christian Brauner [Wed, 10 Apr 2019 21:10:57 +0000 (23:10 +0200)] 
cgfsng: fix cgroup2 handling

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: backport monitor_pid handling
Christian Brauner [Wed, 10 Apr 2019 21:07:24 +0000 (23:07 +0200)] 
start: backport monitor_pid handling

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agohardening: enable address sanitizer build
Christian Brauner [Tue, 12 Mar 2019 19:58:09 +0000 (20:58 +0100)] 
hardening: enable address sanitizer build

This adds --{disable,enable}-asan. It is disabled by default.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: fix parent PID passed to lxc_set_death_signal
Felix Abecassis [Tue, 12 Mar 2019 00:15:45 +0000 (17:15 -0700)] 
start: fix parent PID passed to lxc_set_death_signal

Fixes: #2902
Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
6 years agoutils: fix handling of PID namespaces in lxc_set_death_signal
Felix Abecassis [Tue, 12 Mar 2019 00:13:48 +0000 (17:13 -0700)] 
utils: fix handling of PID namespaces in lxc_set_death_signal

Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
6 years agocompiler: -fexceptions hardening
Christian Brauner [Mon, 11 Mar 2019 22:36:02 +0000 (23:36 +0100)] 
compiler: -fexceptions hardening

This hardens multi-threaded C. Without it, the implementation of thread
cancellation handlers (introduced by pthread_cleanup_push) uses a completely
unprotected function pointer on the stack. This function pointer can simplify
the exploitation of stack-based buffer overflows even if the thread in question
is never canceled.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocompiler: -pipe
Christian Brauner [Mon, 11 Mar 2019 22:34:01 +0000 (23:34 +0100)] 
compiler: -pipe

Avoid temporary files, speeding up builds.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocompiler: -fasynchronous-unwind-tables hardening
Christian Brauner [Mon, 11 Mar 2019 22:30:41 +0000 (23:30 +0100)] 
compiler: -fasynchronous-unwind-tables hardening

Increased reliability of backtraces.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agobtrfs: ensure \0 byte at end
Christian Brauner [Mon, 11 Mar 2019 11:47:23 +0000 (12:47 +0100)] 
btrfs: ensure \0 byte at end

Apparently the name received from the tree walk is not guaranteed to have \0
byte at the end. So let's make sure we append one.
Note that this is only an issue if there are any subvolumes in the container's
rootfs.

Closes 2826.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agohooks: drop namespace references before post-stop
Christian Brauner [Sun, 10 Mar 2019 10:46:18 +0000 (11:46 +0100)] 
hooks: drop namespace references before post-stop

Callers such as LXD run post-stop hooks to perform cleanup operations on
shutdown. This can involve umount and other things. To avoid surprises with
lingering namespace references we should close all our namespace-preserving
file descriptors. We don't need them at this point anymore anyway.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoFix lxc.cgroup2.<controller> on cgroup2-only systems
Michael Sparmann [Wed, 6 Mar 2019 23:06:11 +0000 (00:06 +0100)] 
Fix lxc.cgroup2.<controller> on cgroup2-only systems

Signed-off-by: Michael Sparmann <theseven@gmx.net>
6 years agoconf: avoid compiler warning
Christian Brauner [Tue, 5 Mar 2019 18:29:38 +0000 (19:29 +0100)] 
conf: avoid compiler warning

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoRevert "conf: Fixes unitialised variable."
Christian Brauner [Tue, 5 Mar 2019 18:28:52 +0000 (19:28 +0100)] 
Revert "conf: Fixes unitialised variable."

This reverts commit 912c4bb474b52284cf82c336b0af161be6c25ac1.

I accidently merged this commit. The initialization is wrong.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: Fixes unitialised variable.
tomponline [Tue, 5 Mar 2019 16:56:42 +0000 (16:56 +0000)] 
conf: Fixes unitialised variable.

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agoconfile: make parse_limit_value() static
Christian Brauner [Mon, 4 Mar 2019 19:31:52 +0000 (20:31 +0100)] 
confile: make parse_limit_value() static

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconfile_utils: make update_hwaddr() static
Christian Brauner [Mon, 4 Mar 2019 19:30:41 +0000 (20:30 +0100)] 
confile_utils: make update_hwaddr() static

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconfile_utils: lxc_config_net_is_hwaddr()
Christian Brauner [Mon, 4 Mar 2019 19:26:33 +0000 (20:26 +0100)] 
confile_utils: lxc_config_net_is_hwaddr()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocmd: shut up gcc.
tomponline [Mon, 4 Mar 2019 08:37:16 +0000 (08:37 +0000)] 
cmd: shut up gcc.

Closes #2885.

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agostorage: shut up gcc and remove unused variables.
tomponline [Mon, 4 Mar 2019 08:33:51 +0000 (08:33 +0000)] 
storage: shut up gcc and remove unused variables.

Closes #2885.

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agostart: shut up gcc.
tomponline [Mon, 4 Mar 2019 08:27:59 +0000 (08:27 +0000)] 
start: shut up gcc.

Closes #2885.

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agomonitor: shut up gcc.
tomponline [Mon, 4 Mar 2019 08:25:42 +0000 (08:25 +0000)] 
monitor: shut up gcc.

Closes #2885.

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agonetwork: shut up gcc.
tomponline [Mon, 4 Mar 2019 08:23:39 +0000 (08:23 +0000)] 
network: shut up gcc.

Closes #2885.

Signed-off-by: tomponline <tomp@tomp.uk>
6 years agolxccontainer: shut up gcc and remove unused variables.
tomponline [Mon, 4 Mar 2019 08:20:59 +0000 (08:20 +0000)] 
lxccontainer: shut up gcc and remove unused variables.

Closes #2885.

Signed-off-by: tomponline <tomp@tomp.uk>