diff --git a/0001-Revert-resolved-gracefully-handle-with-packets-with-.patch b/0001-Revert-resolved-gracefully-handle-with-packets-with-.patch new file mode 100644 index 00000000..daf75746 --- /dev/null +++ b/0001-Revert-resolved-gracefully-handle-with-packets-with-.patch @@ -0,0 +1,51 @@ +From baf6a410b5bee7d45c26e9475796f1e9db201d77 Mon Sep 17 00:00:00 2001 +From: Franck Bui +Date: Tue, 23 Mar 2021 09:09:01 +0100 +Subject: [PATCH 1/1] Revert "resolved: gracefully handle with packets with too + large RR count" + +This reverts commit c8b7432cba73a4215538726cd98da23a8de9b426. + +[fbui: temporary workaround for bsc#1183745] +--- + src/resolve/resolved-dns-packet.c | 16 +--------------- + 1 file changed, 1 insertion(+), 15 deletions(-) + +diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c +index e97d9c6a12..90a40244b1 100644 +--- a/src/resolve/resolved-dns-packet.c ++++ b/src/resolve/resolved-dns-packet.c +@@ -2210,18 +2210,6 @@ static int dns_packet_extract_answer(DnsPacket *p, DnsAnswer **ret_answer) { + if (r < 0) + return r; + +- if (p->rindex == p->size) { +- /* If we reached the end of the packet already, but there are still more RRs +- * declared, then that's a corrupt packet. Let's accept the packet anyway, since it's +- * apparently a common bug in routers. Let's however suppress OPT support in this +- * case, so that we force the rest of the logic into lowest DNS baseline support. Or +- * to say this differently: if the DNS server doesn't even get the RR counts right, +- * it's highly unlikely it gets EDNS right. */ +- log_debug("More resource records declared in packet than included, suppressing OPT."); +- bad_opt = true; +- break; +- } +- + /* Try to reduce memory usage a bit */ + if (previous) + dns_resource_key_reduce(&rr->key, &previous->key); +@@ -2307,10 +2295,8 @@ static int dns_packet_extract_answer(DnsPacket *p, DnsAnswer **ret_answer) { + previous = dns_resource_record_ref(rr); + } + +- if (bad_opt) { ++ if (bad_opt) + p->opt = dns_resource_record_unref(p->opt); +- p->opt_start = p->opt_size = SIZE_MAX; +- } + + *ret_answer = TAKE_PTR(answer); + +-- +2.26.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 1751888e..c486ee45 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Mar 24 07:05:22 UTC 2021 - Franck Bui + +- Add 0001-Revert-resolved-gracefully-handle-with-packets-with-.patch + + Temporary workaround for bsc#1183745 (upstream issue 18917) until an + actual fix is found. + ------------------------------------------------------------------- Mon Mar 22 21:12:40 UTC 2021 - Neal Gompa diff --git a/systemd-mini.spec b/systemd-mini.spec index fd4a0914..b0ef3ca2 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -186,6 +186,7 @@ Patch12: 0012-resolved-create-etc-resolv.conf-symlink-at-runtime.patch # upstream and need an urgent fix. Even in this case, the patches are # temporary and should be removed as soon as a fix is merged by # upstream. +Patch100: 0001-Revert-resolved-gracefully-handle-with-packets-with-.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -514,7 +515,7 @@ systemd-journal-remote, and systemd-journal-upload. -Dpamlibdir=%{_pamdir} \ -Drpmmacrosdir=no \ -Dcertificate-root=%{_sysconfdir}/pki/systemd \ - -Ddefault-hierarchy=hybrid \ + -Ddefault-hierarchy=unified \ -Ddefault-kill-user-processes=false \ -Drc-local=/etc/init.d/boot.local \ -Dbump-proc-sys-fs-nr-open=false \ diff --git a/systemd.changes b/systemd.changes index 1751888e..c486ee45 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Mar 24 07:05:22 UTC 2021 - Franck Bui + +- Add 0001-Revert-resolved-gracefully-handle-with-packets-with-.patch + + Temporary workaround for bsc#1183745 (upstream issue 18917) until an + actual fix is found. + ------------------------------------------------------------------- Mon Mar 22 21:12:40 UTC 2021 - Neal Gompa diff --git a/systemd.spec b/systemd.spec index d20fdc64..e1fd30d1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -184,6 +184,7 @@ Patch12: 0012-resolved-create-etc-resolv.conf-symlink-at-runtime.patch # upstream and need an urgent fix. Even in this case, the patches are # temporary and should be removed as soon as a fix is merged by # upstream. +Patch100: 0001-Revert-resolved-gracefully-handle-with-packets-with-.patch %description Systemd is a system and service manager, compatible with SysV and LSB