We were freeing one and setting a different one to NULL, eventually
leading to a crash when closing the netdev (at container shutdown)
and freeing already-freed memory.
Closes#732
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
`bash-completion` version 2.1 and later no longer include the `have` command,
and consequently the `lxc` competion file fails on such systems. The command is
now called `_have`.
Signed-off-by: Peter Simons <simons@cryp.to>
Added missing network utilities to base install for Leap. Included
check to do it for Leap 42.1 only.
Signed-off-by: Terzeus S. Dominguez <zeus@dmgznet.com>
We'll probably want to make this configurable with a
lxc.cgroupns = [1|0], but for now just always do it.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
---
Changelog 20160104: only try to unshare if /proc/self/ns/cgroup exists.
and continue without them if possible. This allows an unpriv user
who only has a few cgroups he owns to still use lxc.
This patch only handles cgmanger - we need to handle this in cgfs too.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
* Add long options if not be written
* Remove optional tags in OPTIONS section
Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
network.c:is_wlan() File Leak f f initialized at line 156 with fopen f
leaks when fopen(path, r) != NULL at line 156 and physname == NULL at
line 163.
Signed-off-by: Wim Coekaerts <wim.coekaerts@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Linux for SPARC is a free community Linux distribution for SPARC hosted by Oracle. See : https://oss.oracle.com/projects/linux-sparc
While the distribution is based on Oracle Linux it does have some differences and since it's not actually Oracle Linux I decided to add a separate template rather than having the Oracle Linux template also support Linux for SPARC.
This patch adds the lxc-template for Linux for SPARC and it also adds Linux for SPARC in the configure.ac as a distribution target to build.
Signed-off-by: Wim Coekaerts <wim.coekaerts@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
Using
#include <sys/types.h>
is not sufficient to guarantee that __le64 and other types are defined.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The struct
struct ovl_rsync_data {
struct bdev *orig;
struct bdev *new;
};
is simply a duplicate of
struct rsync_data {
struct bdev *orig;
struct bdev *new;
};
So let's replace any references to ovl_rsync_data with rsync_data.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions:
- do_rsync();
- rsync_delta();
- rsync_delta_wrapper();
- rsync_rootfs();
- rsync_rootfs_wrapper();
and the structs
- struct rsync_data;
- struct rsync_data_char;
move from bdev.{c,h} to lxcrsync.{c.h}. All functions previously declared as
static become public.
lxcrsync.{c,h} should allow for a reasonable amount of abstraction regarding
our rsync functions. Some of the functions could easily be abstracted.
Adapt Makefile.am to include lxcrsync.{c,h}.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
Declare
- btrfs_same_fs();
- btrfs_snapshot();
extern instead of static in lxcbtrfs.h. They are defined in lxcbtrfs.c.
Forward declare/put
- struct bdev; /* defined in bdev.h */
- struct bdev_specs; /* defined in lxccontainer.h */
- struct lxc_conf; /* defined conf.h */
as incomplete types in lxcbtrfs.h so that functions declared and defined in
lxcbtrfs.{c,h} have access to it.
Declare
- dir_new_path();
in lxcbtrfs.c. It is defined in lxccontainer.c.
Move definition of struct
- struct rsync_data_char;
from bdev.c to bdev.h because the functions in lxcbtrfs.{c,h} need to access it.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
Using
#include <sys/types.h>
is not sufficient to guarantee that __le64 and other types are defined.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The struct
struct ovl_rsync_data {
struct bdev *orig;
struct bdev *new;
};
is simply a duplicate of
struct rsync_data {
struct bdev *orig;
struct bdev *new;
};
So let's replace any references to ovl_rsync_data with rsync_data.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions:
- do_rsync();
- rsync_delta();
- rsync_delta_wrapper();
- rsync_rootfs();
- rsync_rootfs_wrapper();
and the structs
- struct rsync_data;
- struct rsync_data_char;
move from bdev.{c,h} to lxcrsync.{c.h}. All functions previously declared as
static become public.
lxcrsync.{c,h} should allow for a reasonable amount of abstraction regarding
our rsync functions. Some of the functions could easily be abstracted.
Adapt Makefile.am to include lxcrsync.{c,h}.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
Declare
- btrfs_same_fs();
- btrfs_snapshot();
extern instead of static in lxcbtrfs.h. They are defined in lxcbtrfs.c.
Forward declare/put
- struct bdev; /* defined in bdev.h */
- struct bdev_specs; /* defined in lxccontainer.h */
- struct lxc_conf; /* defined conf.h */
as incomplete types in lxcbtrfs.h so that functions declared and defined in
lxcbtrfs.{c,h} have access to it.
Declare
- dir_new_path();
in lxcbtrfs.c. It is defined in lxccontainer.c.
Move definition of struct
- struct rsync_data_char;
from bdev.c to bdev.h because the functions in lxcbtrfs.{c,h} need to access it.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
As lxc_attach() calls fork() PyOS_AfterFork should be called in the new
process if the Python interpreter will continue to be used.
Signed-off-by: Danil Osherov <shindo@yandex-team.ru>