2.16.1, BFD-related crash in nest/password.c:password_find_by_id()
Lexi Winter
lexi at hemlock.eden.le-fay.org
Tue Mar 4 09:51:19 CET 2025
hello,
i'm running into a crash on 2.16.1 on FreeBSD/amd64 15.0. it happens
sometimes (not always) when reconfiguring BIRD with BFD enabled.
(gdb) run -f
Starting program: /usr/local/bird/sbin/bird -f
[New LWP 101873 of process 58914]
Thread 2 received signal SIGSEGV, Segmentation fault.
Address not mapped to object.
[Switching to LWP 101873 of process 58914]
0x00000000002bcd70 in password_find_by_id (l=0x800e913e0, id=1) at nest/password.c:52
warning: 52 nest/password.c: No such file or directory
(gdb) bt
#0 0x00000000002bcd70 in password_find_by_id (l=0x800e913e0, id=1) at nest/password.c:52
#1 0x00000000002d2b3c in bfd_check_authentication (p=p at entry=0x801215a20, s=s at entry=0x800def920, pkt=0xffffffff00000000, pkt at entry=0x801296780) at proto/bfd/packets.c:246
#2 0x00000000002d2755 in bfd_rx_hook (sk=0x8012288c0, len=<optimized out>) at proto/bfd/packets.c:384
#3 0x0000000000312a3a in sk_read_noflush (s=0x8012288c0, revents=<optimized out>) at sysdep/unix/io.c:2144
#4 sk_read (s=0x8012288c0, revents=revents at entry=0) at sysdep/unix/io.c:2153
#5 0x00000000002d1f49 in sockets_fire (loop=0x80129e020) at proto/bfd/io.c:376
#6 birdloop_main (arg=0x80129e020) at proto/bfd/io.c:526
#7 0x00000008003fad32 in thread_start (curthread=0x800e0b808) at /build/src/freebsd/lf/main/lib/libthr/thread/thr_create.c:289
#8 0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffdfffe000
(gdb)
line 52 is: WALK_LIST(pi, *l)
(gdb) print pi
$1 = <optimized out>
(gdb) print l
$2 = (list *) 0x800e913e0
(gdb) print *l
$3 = {{head_node = {next = 0xffffffff00000000, prev = 0x0}, head_padding = 0x0}, {tail_padding = 0xffffffff00000000, tail_node = {next = 0x0, prev = 0x0}}, {head = 0xffffffff00000000, null = 0x0,
tail = 0x0}}
my BFD configuration is fairly straightforward:
protocol bfd {
interface "wg.*" {
interval 200ms;
password "...";
authentication keyed sha1;
};
multihop {
interval 1s;
multiplier 5;
password "...";
authentication keyed sha1;
};
}
and it's enabled (bfd yes;) for OSPFv3 peers and multihop IBGP peers.
i have a binary with debuggiing symbols and a core dump if any more
debugging is required.
regards, lexi.
More information about the Bird-users
mailing list