diff options
Diffstat (limited to 'app-emulation/lxc/files')
-rw-r--r-- | app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync1.patch | 29 | ||||
-rw-r--r-- | app-emulation/lxc/files/lxc-4.0.11_p1-liburing-sync2.patch | 28 |
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; + |