]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
4 years agonetwork: simplify instantiate_vlan()
Christian Brauner [Wed, 3 Jul 2019 19:44:19 +0000 (21:44 +0200)]
network: simplify instantiate_vlan()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agonetwork: record created_name for instantiate_ipvlan()
Christian Brauner [Wed, 3 Jul 2019 19:43:19 +0000 (21:43 +0200)]
network: record created_name for instantiate_ipvlan()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agonetwork: simplify instantiate_ipvlan()
Christian Brauner [Wed, 3 Jul 2019 19:42:18 +0000 (21:42 +0200)]
network: simplify instantiate_ipvlan()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agonetwork: stash created_name in instantiate_macvlan()
Christian Brauner [Wed, 3 Jul 2019 19:39:54 +0000 (21:39 +0200)]
network: stash created_name in instantiate_macvlan()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agonetwork: simplify instantiate_macvlan()
Christian Brauner [Wed, 3 Jul 2019 19:39:24 +0000 (21:39 +0200)]
network: simplify instantiate_macvlan()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agonetwork: s/loDev/loop_device/g
Christian Brauner [Wed, 3 Jul 2019 19:37:37 +0000 (21:37 +0200)]
network: s/loDev/loop_device/g

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3075 from brauner/2019-07-03/cgroups
Stéphane Graber [Wed, 3 Jul 2019 16:23:50 +0000 (12:23 -0400)]
Merge pull request #3075 from brauner/2019-07-03/cgroups

cgroups: hande cpuset initialization race

4 years agocgroups: hande cpuset initialization race
Christian Brauner [Wed, 3 Jul 2019 15:57:48 +0000 (17:57 +0200)]
cgroups: hande cpuset initialization race

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3074 from brauner/2019-07-03/fix_phys_network_creation
Stéphane Graber [Wed, 3 Jul 2019 15:44:25 +0000 (11:44 -0400)]
Merge pull request #3074 from brauner/2019-07-03/fix_phys_network_creation

network: remove faulty restriction

4 years agonetwork: remove faulty restriction
Christian Brauner [Wed, 3 Jul 2019 13:13:46 +0000 (15:13 +0200)]
network: remove faulty restriction

Reported-by: Thomas Parrott <thomas.parrott@canonical.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3069 from brauner/2019-07-01/network_creation
Stéphane Graber [Tue, 2 Jul 2019 15:46:55 +0000 (11:46 -0400)]
Merge pull request #3069 from brauner/2019-07-01/network_creation

start: unify network creation

4 years agostart: expose LXC_PID to network hooks too
Christian Brauner [Tue, 2 Jul 2019 10:57:12 +0000 (12:57 +0200)]
start: expose LXC_PID to network hooks too

Closes #3066.
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agostart: unify and simplify network creation
Christian Brauner [Mon, 1 Jul 2019 15:55:16 +0000 (17:55 +0200)]
start: unify and simplify network creation

Make sure that network creation happens at the same time for containers started
by privileged and unprivileged users. The only reason we didn't do this so far
was to avoid sending network device ifindices around in the privileged case.

Link: https://github.com/lxc/lxc/issues/3066
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3064 from brauner/2019-06-27/cleanup_macros
Stéphane Graber [Tue, 2 Jul 2019 02:06:23 +0000 (22:06 -0400)]
Merge pull request #3064 from brauner/2019-06-27/cleanup_macros

bugfixes

4 years agoMerge pull request #3059 from brauner/2019-06-21/seccomp_notify
Stéphane Graber [Tue, 2 Jul 2019 02:04:20 +0000 (22:04 -0400)]
Merge pull request #3059 from brauner/2019-06-21/seccomp_notify

lxccontainer: rework seccomp notify api function

4 years agoMerge pull request #3067 from Rachid-Koucha/patch-1
Christian Brauner [Sun, 30 Jun 2019 16:13:30 +0000 (18:13 +0200)]
Merge pull request #3067 from Rachid-Koucha/patch-1

Move code/variable in smaller scope

4 years agoMove code/variable in smaller scope
Rachid Koucha [Sat, 29 Jun 2019 21:21:14 +0000 (23:21 +0200)]
Move code/variable in smaller scope

In start.c, do not fill path[] table if not necessary

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
4 years agoMerge pull request #3065 from lifeng68/fix_memory_leak
Christian Brauner [Fri, 28 Jun 2019 09:53:52 +0000 (11:53 +0200)]
Merge pull request #3065 from lifeng68/fix_memory_leak

fix memory leak in do_storage_create

4 years agofix memory leak in do_storage_create
LiFeng [Fri, 28 Jun 2019 03:49:08 +0000 (23:49 -0400)]
fix memory leak in do_storage_create

Signed-off-by: LiFeng <lifeng68@huawei.com>
4 years agocgroups: move variable into tighter scope
Christian Brauner [Thu, 27 Jun 2019 12:48:34 +0000 (14:48 +0200)]
cgroups: move variable into tighter scope

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: correctly order variables
Christian Brauner [Thu, 27 Jun 2019 12:46:47 +0000 (14:46 +0200)]
cgroups: correctly order variables

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: move variable into tighter scope
Christian Brauner [Thu, 27 Jun 2019 12:45:36 +0000 (14:45 +0200)]
cgroups: move variable into tighter scope

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: simplify cgfsng_nrtasks()
Christian Brauner [Thu, 27 Jun 2019 12:43:36 +0000 (14:43 +0200)]
cgroups: simplify cgfsng_nrtasks()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: move variable into tighter scope
Christian Brauner [Thu, 27 Jun 2019 12:43:09 +0000 (14:43 +0200)]
cgroups: move variable into tighter scope

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: move variable into tighter scope
Christian Brauner [Thu, 27 Jun 2019 12:27:58 +0000 (14:27 +0200)]
cgroups: move variable into tighter scope

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: use __do_free in cgfsng_attach()
Christian Brauner [Thu, 27 Jun 2019 12:27:39 +0000 (14:27 +0200)]
cgroups: use __do_free in cgfsng_attach()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: simplify cgfsng_setup_limits()
Christian Brauner [Thu, 27 Jun 2019 12:26:38 +0000 (14:26 +0200)]
cgroups: simplify cgfsng_setup_limits()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: move variables into tighter scope
Christian Brauner [Thu, 27 Jun 2019 12:26:14 +0000 (14:26 +0200)]
cgroups: move variables into tighter scope

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agocgroups: use __do_free
Christian Brauner [Thu, 27 Jun 2019 12:25:53 +0000 (14:25 +0200)]
cgroups: use __do_free

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3063 from lifeng68/fix_memory_leak
Christian Brauner [Thu, 27 Jun 2019 07:40:55 +0000 (09:40 +0200)]
Merge pull request #3063 from lifeng68/fix_memory_leak

cgfsng: fix memory leak in lxc_cpumask_to_cpulist

4 years agocgfsng: fix memory leak in lxc_cpumask_to_cpulist
LiFeng [Thu, 27 Jun 2019 03:54:27 +0000 (23:54 -0400)]
cgfsng: fix memory leak in lxc_cpumask_to_cpulist

Signed-off-by: LiFeng <lifeng68@huawei.com>
4 years agolxccontainer: rework seccomp notify api function
Christian Brauner [Fri, 21 Jun 2019 10:59:36 +0000 (12:59 +0200)]
lxccontainer: rework seccomp notify api function

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3056 from brauner/2019-06-20/cpuset
Stéphane Graber [Thu, 20 Jun 2019 17:54:12 +0000 (13:54 -0400)]
Merge pull request #3056 from brauner/2019-06-20/cpuset

cgfsng: write cpuset.mems of correct ancestor

4 years agocgfsng: write cpuset.mems of correct ancestor
Christian Brauner [Thu, 20 Jun 2019 17:37:09 +0000 (19:37 +0200)]
cgfsng: write cpuset.mems of correct ancestor

Reported-by: Free Ekanayaka <free.ekanayaka@canonical.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3052 from tanyifeng/fd_leak
Christian Brauner [Thu, 20 Jun 2019 09:33:41 +0000 (11:33 +0200)]
Merge pull request #3052 from tanyifeng/fd_leak

parse.c: fix fd leak from memfd_create

4 years agoparse.c: fix fd leak from memfd_create
t00416110 [Thu, 20 Jun 2019 20:26:59 +0000 (16:26 -0400)]
parse.c: fix fd leak from memfd_create

Signed-off-by: t00416110 <tanyifeng1@huawei.com>
4 years agoMerge pull request #3050 from hallyn/pkgconfig
Christian Brauner [Tue, 18 Jun 2019 19:09:28 +0000 (21:09 +0200)]
Merge pull request #3050 from hallyn/pkgconfig

lxc.pc.in: add libs.private for static linking

4 years agolxc.pc.in: add libs.private for static linking
Serge Hallyn [Mon, 17 Jun 2019 13:37:47 +0000 (08:37 -0500)]
lxc.pc.in: add libs.private for static linking

None of them seem to support pkg-config themselves, else we could add
them to Requires.private.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
4 years agoMerge pull request #3047 from Rachid-Koucha/patch-11
Christian Brauner [Sun, 16 Jun 2019 02:11:35 +0000 (04:11 +0200)]
Merge pull request #3047 from Rachid-Koucha/patch-11

Fixed file descriptor leak for network namespace

4 years agoFixed file descriptor leak for network namespace
Rachid Koucha [Sat, 15 Jun 2019 13:17:50 +0000 (15:17 +0200)]
Fixed file descriptor leak for network namespace

In privileged mode, the container startup looses a file descriptor for "handler->nsfd[LX_NS_NET]". At line 1782, we preserve the namespaces file descriptor (in privileged mode, the network namespace is also preserved) :
for (i = 0; i < LXC_NS_MAX; i++)
if (handler->ns_on_clone_flags & ns_info[i].clone_flag)
INFO("Cloned %s", ns_info[i].flag_name);

if (!lxc_try_preserve_namespaces(handler, handler->ns_on_clone_flags, handler->pid)) {
ERROR("Failed to preserve cloned namespaces for lxc.hook.stop");
goto out_delete_net;
}

Then at line 1830, we preserve one more time the network namespace :
ret = lxc_try_preserve_ns(handler->pid, "net");
if (ret < 0) {
if (ret != -EOPNOTSUPP) {
SYSERROR("Failed to preserve net namespace");
goto out_delete_net;
}
The latter overwrites the file descriptor already stored in handler->nsfd[LXC_NS_NET] at line 1786.

So, this fix checks that the entry is not already filled.

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
4 years agoMerge pull request #3045 from hallyn/2019-06-13/openssl
Serge Hallyn [Sat, 15 Jun 2019 04:00:48 +0000 (23:00 -0500)]
Merge pull request #3045 from hallyn/2019-06-13/openssl

[RFC\ Switch from gnutls to openssl for sha1

4 years agoMerge pull request #3046 from brauner/lxc/master
Stéphane Graber [Fri, 14 Jun 2019 11:48:31 +0000 (07:48 -0400)]
Merge pull request #3046 from brauner/lxc/master

network: fix lxc_netdev_rename_by_index()

4 years agonetwork: fix lxc_netdev_rename_by_index()
Christian Brauner [Fri, 14 Jun 2019 10:39:20 +0000 (12:39 +0200)]
network: fix lxc_netdev_rename_by_index()

Return an error code when the name is invalid instead of pretending that things
are fine.

Closes #3044.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoSwitch from gnutls to openssl for sha1
Serge Hallyn [Fri, 14 Jun 2019 03:08:26 +0000 (03:08 +0000)]
Switch from gnutls to openssl for sha1

The reason for this is because openssl can be statically linked
against, gnutls cannot.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
4 years agoMerge pull request #3042 from tenforward/japanese
Christian Brauner [Thu, 13 Jun 2019 12:10:00 +0000 (14:10 +0200)]
Merge pull request #3042 from tenforward/japanese

doc: add a note about shared ns + LSMs to Japanese doc

4 years agodoc: add a note about shared ns + LSMs to Japanese doc
KATOH Yasufumi [Thu, 13 Jun 2019 12:05:24 +0000 (21:05 +0900)]
doc: add a note about shared ns + LSMs to Japanese doc

Update for commit 8de90384363fe01f5258d36724dd3eae55918b5b

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
4 years agoMerge pull request #3041 from brauner/2019-06-12/seccomp_notify_fixes
Stéphane Graber [Wed, 12 Jun 2019 12:18:24 +0000 (08:18 -0400)]
Merge pull request #3041 from brauner/2019-06-12/seccomp_notify_fixes

seccomp: do not set SECCOMP_FILTER_FLAG_NEW_LISTENER

4 years agoMerge pull request #3040 from Rachid-Koucha/patch-11
Christian Brauner [Wed, 12 Jun 2019 12:15:39 +0000 (14:15 +0200)]
Merge pull request #3040 from Rachid-Koucha/patch-11

Centralize hook names

4 years agoseccomp: do not set SECCOMP_FILTER_FLAG_NEW_LISTENER
Christian Brauner [Wed, 12 Jun 2019 11:42:25 +0000 (13:42 +0200)]
seccomp: do not set SECCOMP_FILTER_FLAG_NEW_LISTENER

Do not set SECCOMP_FILTER_FLAG_NEW_LISTENER as seccomp attribute.
Prior to libseccomp merging support for SECCOMP_RET_USER_NOTIF there was a
libseccomp specific attribute that needed to be set before
SECCOMP_RET_USER_NOTIF could be used. This has been removed.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoCentralize hook names
Rachid Koucha [Wed, 12 Jun 2019 06:36:40 +0000 (08:36 +0200)]
Centralize hook names

The hook string names must not be repeated in the source code to facilitate future changes

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
4 years agoMerge pull request #3039 from brauner/master
Stéphane Graber [Tue, 11 Jun 2019 22:11:32 +0000 (18:11 -0400)]
Merge pull request #3039 from brauner/master

seccomp: add ifdefine for SECCOMP_FILTER_FLAG_NEW_LISTENER

4 years agoseccomp: add ifdefine for SECCOMP_FILTER_FLAG_NEW_LISTENER
Christian Brauner [Tue, 11 Jun 2019 22:02:49 +0000 (00:02 +0200)]
seccomp: add ifdefine for SECCOMP_FILTER_FLAG_NEW_LISTENER

So that we can deal with older kernels.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3038 from brauner/master
Stéphane Graber [Tue, 11 Jun 2019 21:53:05 +0000 (17:53 -0400)]
Merge pull request #3038 from brauner/master

seccomp: s/SCMP_FLTATR_NEW_LISTENER/SECCOMP_FILTER_FLAG_NEW_LISTENER/g

4 years agoseccomp: s/SCMP_FLTATR_NEW_LISTENER/SECCOMP_FILTER_FLAG_NEW_LISTENER/g
Christian Brauner [Tue, 11 Jun 2019 21:51:34 +0000 (23:51 +0200)]
seccomp: s/SCMP_FLTATR_NEW_LISTENER/SECCOMP_FILTER_FLAG_NEW_LISTENER/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3037 from brauner/master
Stéphane Graber [Tue, 11 Jun 2019 21:43:10 +0000 (17:43 -0400)]
Merge pull request #3037 from brauner/master

seccomp: align with upstream libseccomp

4 years agoseccomp: s/HAVE_DECL_SECCOMP_NOTIF_GET_FD/HAVE_DECL_SECCOMP_NOTIFY_FD/g
Christian Brauner [Tue, 11 Jun 2019 21:36:56 +0000 (23:36 +0200)]
seccomp: s/HAVE_DECL_SECCOMP_NOTIF_GET_FD/HAVE_DECL_SECCOMP_NOTIFY_FD/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoseccomp: /sseccomp_notif_free/seccomp_notify_free/g
Christian Brauner [Tue, 11 Jun 2019 21:34:33 +0000 (23:34 +0200)]
seccomp: /sseccomp_notif_free/seccomp_notify_free/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoseccomp: s/seccomp_notif_alloc/seccomp_notify_alloc/g
Christian Brauner [Tue, 11 Jun 2019 21:33:22 +0000 (23:33 +0200)]
seccomp: s/seccomp_notif_alloc/seccomp_notify_alloc/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoseccomp: s/seccomp_notif_id_valid/seccomp_notify_id_valid/g
Christian Brauner [Tue, 11 Jun 2019 21:32:19 +0000 (23:32 +0200)]
seccomp: s/seccomp_notif_id_valid/seccomp_notify_id_valid/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoseccomp: s/seccomp_notif_send_resp/seccomp_notify_respond/g
Christian Brauner [Tue, 11 Jun 2019 21:31:12 +0000 (23:31 +0200)]
seccomp: s/seccomp_notif_send_resp/seccomp_notify_respond/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoseccomp: s/seccomp_notif_receive/seccomp_notify_receive/g
Christian Brauner [Tue, 11 Jun 2019 21:29:39 +0000 (23:29 +0200)]
seccomp: s/seccomp_notif_receive/seccomp_notify_receive/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoseccomp: s/seccomp_notif_get_fd/seccomp_notify_fd/g
Christian Brauner [Tue, 11 Jun 2019 21:27:33 +0000 (23:27 +0200)]
seccomp: s/seccomp_notif_get_fd/seccomp_notify_fd/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoseccomp: s/SCMP_ACT_USER_NOTIF/SCMP_ACT_NOTIFY/g
Christian Brauner [Tue, 11 Jun 2019 21:25:44 +0000 (23:25 +0200)]
seccomp: s/SCMP_ACT_USER_NOTIF/SCMP_ACT_NOTIFY/g

Align with upstream libseccomp.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
4 years agoMerge pull request #3032 from promlow/lxcbasename_fix
Christian Brauner [Fri, 7 Jun 2019 00:35:39 +0000 (02:35 +0200)]
Merge pull request #3032 from promlow/lxcbasename_fix

proposed fix for #2892 - fix lxcbasename in lxc/lxccontainer.c

4 years agoMerge pull request #3034 from brauner/2019-06-05/boot_id
Stéphane Graber [Thu, 6 Jun 2019 10:57:11 +0000 (12:57 +0200)]
Merge pull request #3034 from brauner/2019-06-05/boot_id

start: generate new boot id on container start

4 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>
4 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>
4 years agoMerge pull request #3029 from brauner/2019-06-05/fix_offline_cpus
Stéphane Graber [Wed, 5 Jun 2019 11:09:42 +0000 (13:09 +0200)]
Merge pull request #3029 from brauner/2019-06-05/fix_offline_cpus

cgroups: prevent segfault

4 years agoMerge pull request #3031 from Rachid-Koucha/patch-11
Christian Brauner [Wed, 5 Jun 2019 11:08:39 +0000 (13:08 +0200)]
Merge pull request #3031 from Rachid-Koucha/patch-11

Make /tmp accessible to any user

4 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>
4 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>
4 years agoMerge pull request #3028 from lifeng68/fix_memory_leak
Christian Brauner [Wed, 5 Jun 2019 04:56:17 +0000 (06:56 +0200)]
Merge pull request #3028 from lifeng68/fix_memory_leak

start: fix handler memory leak at lxc_init failed

4 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>
4 years agoMerge pull request #3026 from xmcqueen/master
Christian Brauner [Tue, 4 Jun 2019 14:11:42 +0000 (16:11 +0200)]
Merge pull request #3026 from xmcqueen/master

lxc_usernsexec: continuing after unshare fails leads to confusing and…

4 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>
4 years agoMerge pull request #3014 from brauner/2019-05-24/cgroups_handle_offline_cpus
Stéphane Graber [Tue, 4 Jun 2019 11:52:07 +0000 (13:52 +0200)]
Merge pull request #3014 from brauner/2019-05-24/cgroups_handle_offline_cpus

cgroups: handle offline cpus in v1 hierarchy

4 years agoMerge pull request #3024 from avkvl/fix_groups_with_a_lot_of_members
Christian Brauner [Tue, 4 Jun 2019 08:49:57 +0000 (10:49 +0200)]
Merge pull request #3024 from avkvl/fix_groups_with_a_lot_of_members

lxc-user-net: Failed to convert string " Failed to get group name" to integer

4 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>
4 years agoMerge pull request #3018 from tych0/comment-stack-size
Christian Brauner [Wed, 29 May 2019 15:38:23 +0000 (17:38 +0200)]
Merge pull request #3018 from tych0/comment-stack-size

lxc_clone: add a comment about stack size

4 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>
4 years agoMerge pull request #2987 from tych0/pass-zero-to-clone
Christian Brauner [Wed, 29 May 2019 15:14:00 +0000 (17:14 +0200)]
Merge pull request #2987 from tych0/pass-zero-to-clone

Pass zero to clone

4 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>
4 years agoMerge pull request #3015 from avkvl/issue-2765
Christian Brauner [Tue, 28 May 2019 14:45:36 +0000 (16:45 +0200)]
Merge pull request #3015 from avkvl/issue-2765

fix issue 2765

4 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>
4 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>
4 years agoMerge pull request #3011 from brauner/2019-05-21/android_the_bane_of_my_existence
Stéphane Graber [Tue, 21 May 2019 14:15:08 +0000 (10:15 -0400)]
Merge pull request #3011 from brauner/2019-05-21/android_the_bane_of_my_existence

configure: remove additional comma

4 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>
4 years agoMerge pull request #3010 from brauner/2019-05-17/bugfixes
Stéphane Graber [Fri, 17 May 2019 07:10:47 +0000 (09:10 +0200)]
Merge pull request #3010 from brauner/2019-05-17/bugfixes

lxccontainer: cleanup attach functions

4 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>
4 years agoMerge pull request #3009 from brauner/2019-05-16/rework_attach
Stéphane Graber [Thu, 16 May 2019 17:33:41 +0000 (19:33 +0200)]
Merge pull request #3009 from brauner/2019-05-16/rework_attach

attach: do not reload container

4 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>
4 years agoMerge pull request #3006 from tomponline/tp-phys-downhook
Christian Brauner [Thu, 16 May 2019 08:11:42 +0000 (10:11 +0200)]
Merge pull request #3006 from tomponline/tp-phys-downhook

network: Fixes bug that stopped down hook from running for phys netdevs

4 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>
4 years agoMerge pull request #3005 from tomponline/tp-phys-ns-restore
Christian Brauner [Wed, 15 May 2019 15:40:52 +0000 (17:40 +0200)]
Merge pull request #3005 from tomponline/tp-phys-ns-restore

network: move phys netdevs back to monitor's net ns rather than pid 1's

4 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>
4 years agoMerge pull request #3004 from brauner/master
Stéphane Graber [Wed, 15 May 2019 14:19:19 +0000 (16:19 +0200)]
Merge pull request #3004 from brauner/master

configure: handle checks when cross-compiling

4 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>
4 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>
4 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>
4 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>