From ea044bd51406b3fadaf3751df8b92bb17055d2bd Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 13 Oct 2026 03:00:15 +0900 Subject: [PATCH] sd-bus: do not fail if the passed memfd is already sealed sd_bus_message_append_array_memfd() and sd_bus_message_append_string_memfd() are public functions, hence the passed fd may be already sealed by the caller. Let's gracefully handle such case. (cherry picked from commit 16025762d9055ec56694e4a1d74344029061b7c2) --- src/libsystemd/sd-bus/bus-message.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c index 5c4f473f36..81f78f8036 100644 --- a/src/libsystemd/sd-bus/bus-message.c +++ b/src/libsystemd/sd-bus/bus-message.c @@ -2204,7 +2204,7 @@ _public_ int sd_bus_message_append_array_memfd( assert_return(!m->sealed, -EPERM); assert_return(!m->poisoned, -ESTALE); - r = memfd_set_sealed(memfd); + r = memfd_set_sealed_gracefully(memfd); if (r < 0) return r; @@ -2284,7 +2284,7 @@ _public_ int sd_bus_message_append_string_memfd( assert_return(!m->sealed, -EPERM); assert_return(!m->poisoned, -ESTALE); - r = memfd_set_sealed(memfd); + r = memfd_set_sealed_gracefully(memfd); if (r < 0) return r;