mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 12:18:42 +00:00
Fixed abort when running in foreground but stdin is closed
A forgotten else-clause caused BIRD to treat some pseudo-random place in memory as fd-pair. This was happening only on startup of the first thread in group and the value there in memory was typically zero ... and writing to stdin succeeded. When running BIRD with stdin not present (like systemd does), it died on this spurious write. Now it seems to work correctly. Thanks to Daniel Suchy <danny@danysek.cz> for reporting. http://trubka.network.cz/pipermail/bird-users/2023-May/016929.html
This commit is contained in:
parent
deb303a451
commit
6a3e5c2ae8
@ -1536,7 +1536,8 @@ birdloop_vnew_internal(pool *pp, uint order, struct birdloop_pickup_group *group
|
||||
add_tail(&group->loops, &loop->n);
|
||||
if (EMPTY_LIST(group->threads))
|
||||
ev_send(&global_event_list, &group->start_threads);
|
||||
wakeup_do_kick(SKIP_BACK(struct bird_thread, n, HEAD(group->threads)));
|
||||
else
|
||||
wakeup_do_kick(SKIP_BACK(struct bird_thread, n, HEAD(group->threads)));
|
||||
UNLOCK_DOMAIN(attrs, group->domain);
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user