BIRD 3.4.0 and 2.20.0 released
Dear BIRD users, we are releasing BIRD versions 3.4.0 and 2.20.0. Both versions include all relevant fixes applied in versions 3.3.3, 3.2.4, 3.1.9, 2.19.3, 2.18.2 and 2.17.7. Downloads are possible at <https://bird.nic.cz/get-bird/> and in our upstream repositories. We have added the BGP channel option `ignore otc` to allow people apply this check manually instead. We have also added passive support for the EVPN ESI attribute. We have added an option to create local-host routes from interface records via the Direct protocol, and a `show radv interfaces` CLI command. This is mostly a minor minor release, and there are more things in progress. Officially supported versions are now: - 3.4.0 and 2.20.0 until 6 months after 3.5.0 and 2.21.0 get released - 3.3.0 and 2.19.0 until end of April 2027 - 3.2.x and 2.18.x until end of November 2026 - LTS 3.1.x and 2.17.x tracking Debian Trixie Also, on commercial note, we offer BIRD Support, so that you can get help with configuration, priority access to critical bug fixes, and better influence the overall development directions. It's the users paying for these services, who keep the development running. More on that at our website: <https://bird.nic.cz/commercial-services/> Happy routing! Maria and the BIRD Team -- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
Hello Maria, On Mon, 12 Oct 2026, Maria Matejka via Bird-users wrote:
we are releasing BIRD versions 3.4.0 and 2.20.0.
I tried to build BIRD 3.4.0 on Fedora Rawhide on s390x, but it fails (and only on this architecture) like this: [...] obj/lib/strtoul_test: t_bstrhextobin 0.076523176s [FAIL] obj/lib/strtoul_test: t_bstrbintohex 0.045840313s [FAIL] obj/lib/strtoul_test 0.122865224s [FAIL] The issue likely also affects BIRD 2.20.0, find my patch suggestion below: --- 8< --- Test: Fix stack overflow in bt_fmt_bytestr() bt_fmt_bytestr() allocates len + 1 bytes but writes two hex digits per byte plus a terminating NUL, overflowing the alloca() buffer. The formatter runs for every test case, not only on failure. On x86_64, alloca's 16-byte rounding usually hides the overflow; on s390x it smashes the stack and t_bstrhextobin/t_bstrbintohex fail. Allocate 2 * len + 1 bytes and print with %02x, so every byte is exactly two digits (the old %hx also dropped leading zeros). Fixes: 3567ebc03 ("Lib: Add tests for strtoul.c") --- bird-3.4.0/lib/strtoul_test.c 2026-10-12 08:04:16.000000000 +0000 +++ bird-3.4.0/lib/strtoul_test.c.bytestr-overflow 2026-10-12 21:48:12.603991062 +0000 @@ -201,11 +201,11 @@ return; } - char *tmp = allocz(data->len + 1); + char *tmp = allocz(2 * data->len + 1); char *t = tmp; for (int i = 0; i < data->len; i++) - t += bsprintf(t, "%hx", data->buf[i]); + t += bsprintf(t, "%02x", data->buf[i]); snprintf(buf, size, "0x%s", tmp); } --- 8< --- Regards, Robert
On Tue, Oct 13, 2026 at 12:30:37AM +0200, Robert Scheck wrote:
I tried to build BIRD 3.4.0 on Fedora Rawhide on s390x, but it fails (and only on this architecture) like this:
[...] obj/lib/strtoul_test: t_bstrhextobin 0.076523176s [FAIL] obj/lib/strtoul_test: t_bstrbintohex 0.045840313s [FAIL] obj/lib/strtoul_test 0.122865224s [FAIL]
The issue likely also affects BIRD 2.20.0, find my patch suggestion below:
Thanks, merged: https://gitlab.nic.cz/labs/bird/-/commit/b818218f78655096354ebfe1e74cf1a4cdd... -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) "To err is human -- to blame it on a computer is even more so."
participants (3)
-
Maria Matejka -
Ondrej Zajicek -
Robert Scheck