summaryrefslogtreecommitdiff
path: root/app-emulation/lxc/files
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/lxc/files')
-rw-r--r--app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync1.patch29
-rw-r--r--app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync2.patch28
2 files changed, 57 insertions, 0 deletions
diff --git a/app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync1.patch b/app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync1.patch
new file mode 100644
index 000000000000..cd497a755523
--- /dev/null
+++ b/app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync1.patch
@@ -0,0 +1,29 @@
+From aac3f106ff012e1d6835b20c250dcf09c364530c Mon Sep 17 00:00:00 2001
+From: Christian Brauner <christian.brauner@ubuntu.com>
+Date: Thu, 28 Oct 2021 17:39:11 +0200
+Subject: [PATCH] mainloop: make sure that descr->ring is allocated
+
+This is future proofing more than anything else.
+
+Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
+---
+ src/lxc/mainloop.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/lxc/mainloop.c b/src/lxc/mainloop.c
+index 7c8f5d86af..17a4d55293 100644
+--- a/src/lxc/mainloop.c
++++ b/src/lxc/mainloop.c
+@@ -515,8 +515,10 @@ void lxc_mainloop_close(struct lxc_async_descr *descr)
+
+ if (descr->type == LXC_MAINLOOP_IO_URING) {
+ #if HAVE_LIBURING
+- io_uring_queue_exit(descr->ring);
+- munmap(descr->ring, sizeof(struct io_uring));
++ if (descr->ring) {
++ io_uring_queue_exit(descr->ring);
++ munmap(descr->ring, sizeof(struct io_uring));
++ }
+ #else
+ ERROR("Unsupported io_uring mainloop");
+ #endif
diff --git a/app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync2.patch b/app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync2.patch
new file mode 100644
index 000000000000..33b8554193d3
--- /dev/null
+++ b/app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync2.patch
@@ -0,0 +1,28 @@
+From a585382b972c25ee8489147d94918d001ef439a7 Mon Sep 17 00:00:00 2001
+From: Christian Brauner <christian.brauner@ubuntu.com>
+Date: Thu, 28 Oct 2021 17:39:42 +0200
+Subject: [PATCH] start: check event loop type before closing fd
+
+Since this is a union we might otherwise stomp on io_uring mmap()ed
+memory.
+
+Fixes: #4016
+Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
+---
+ src/lxc/start.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/lxc/start.c b/src/lxc/start.c
+index 8f7173ec8c..1a6046c7a4 100644
+--- a/src/lxc/start.c
++++ b/src/lxc/start.c
+@@ -629,7 +629,8 @@ int lxc_poll(const char *name, struct lxc_handler *handler)
+ TRACE("Mainloop is ready");
+
+ ret = lxc_mainloop(&descr, -1);
+- close_prot_errno_disarm(descr.epfd);
++ if (descr.type == LXC_MAINLOOP_EPOLL)
++ close_prot_errno_disarm(descr.epfd);
+ if (ret < 0 || !handler->init_died)
+ goto out_mainloop_console;
+