diff --git a/SOURCES/9000-resolved-pin-stream-while-calling-callbacks-for-it.patch b/SOURCES/9000-resolved-pin-stream-while-calling-callbacks-for-it.patch new file mode 100644 index 0000000..9b82d08 --- /dev/null +++ b/SOURCES/9000-resolved-pin-stream-while-calling-callbacks-for-it.patch @@ -0,0 +1,42 @@ +From a4f08c798cabd5c43f2578a9e2b048fa1ad4a52c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 4 Dec 2018 22:13:39 +0100 +Subject: [PATCH] resolved: pin stream while calling callbacks for it + +These callbacks might unref the stream, but we still have to access it, +let's hence ref it explicitly. + +Maybe fixes: #10725 + +(cherry picked from commit d973d94dec349fb676fdd844f6fe2ada3538f27c) + +Resolves: #2110548 +--- + src/resolve/resolved-dns-stream.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/resolve/resolved-dns-stream.c b/src/resolve/resolved-dns-stream.c +index 066daef96e..2d0162483a 100644 +--- a/src/resolve/resolved-dns-stream.c ++++ b/src/resolve/resolved-dns-stream.c +@@ -42,6 +42,8 @@ static int dns_stream_update_io(DnsStream *s) { + } + + static int dns_stream_complete(DnsStream *s, int error) { ++ _cleanup_(dns_stream_unrefp) _unused_ DnsStream *ref = dns_stream_ref(s); /* Protect stream while we process it */ ++ + assert(s); + + #if ENABLE_DNS_OVER_TLS +@@ -315,7 +317,7 @@ static int on_stream_timeout(sd_event_source *es, usec_t usec, void *userdata) { + } + + static int on_stream_io(sd_event_source *es, int fd, uint32_t revents, void *userdata) { +- DnsStream *s = userdata; ++ _cleanup_(dns_stream_unrefp) DnsStream *s = dns_stream_ref(userdata); /* Protect stream while we process it */ + int r; + + assert(s); +-- +2.37.1 + diff --git a/SPECS/systemd.spec b/SPECS/systemd.spec index efdcd97..9c08bb1 100644 --- a/SPECS/systemd.spec +++ b/SPECS/systemd.spec @@ -13,7 +13,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 239 -Release: 58%{?dist}.3 +Release: 58%{?dist}.4 # For a breakdown of the licensing, see README License: LGPLv2+ and MIT and GPLv2+ Summary: System and Service Manager @@ -808,6 +808,7 @@ Patch0755: 0755-core-Delay-start-rate-limit-check-when-starting-a-un.patch Patch0756: 0756-core-Propagate-condition-failed-state-to-triggering-.patch Patch0757: 0757-unit-check-for-mount-rate-limiting-before-checking-a.patch +Patch9000: 9000-resolved-pin-stream-while-calling-callbacks-for-it.patch %ifarch %{ix86} x86_64 aarch64 %global have_gnu_efi 1 @@ -1437,6 +1438,9 @@ fi %files tests -f .file-list-tests %changelog +* Wed Aug 03 2022 systemd maintenance team - 239-58.4 +- resolved: pin stream while calling callbacks for it (#2110548) + * Thu Jun 23 2022 systemd maintenance team - 239-58.3 - unit: check for mount rate limiting before checking active state (#2097336)