libxl: fix build on rather old systems

CLONE_NEWIPC has been introduced in Linux 2.6.19 only (and into glibc
at around that time as well). Cope with it being undefined as well as
with the underlying kernel not knowing of it.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Release-acked-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
Jan Beulich authored and Wei Liu committed 2019-01-11 15:02:00 +00:00
1 parent 3729730e94
commit 1bce5f9baf
1 file changed
+14 -2
+14 -2
View File
@@ -334,12 +334,24 @@ int libxl__local_dm_preexec_restrict(libxl__gc *gc)
unsigned i;
/* Unshare mount and IPC namespaces. These are unused by QEMU. */
r = unshare(CLONE_NEWNS | CLONE_NEWIPC);
r = unshare(CLONE_NEWNS);
if (r) {
LOGE(ERROR, "libxl: Mount and IPC namespace unfailed");
LOGE(ERROR, "libxl: Mount namespace unshare failed");
return ERROR_FAIL;
}
#ifndef CLONE_NEWIPC /* Available as of Linux 2.6.19 / glibc 2.8 */
# define CLONE_NEWIPC 0x08000000
#endif
r = unshare(CLONE_NEWIPC);
if (r) {
if (r && errno != EINVAL) {
LOGE(ERROR, "libxl: IPC namespace unshare failed");
return ERROR_FAIL;
}
LOG(WARN, "libxl: IPC namespace unshare unavailable");
}
/* Set various "easy" rlimits */
for (i = 0; rlimits[i].resource != RLIMIT_NLIMITS; i++) {
struct rlimit rlim;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.