This is a tricky one, because we effectively turn fd passing input toggle into a tristate: unset, disabled, and enabled; whereas unset and disabled were identical previously. *Unset* state silently ignores SCM_RIGHTS passed by invoking recv() instead of recvmsg(), and for disabled we now disable SO_PASSRIGHTS completely. The plot thickens when it comes to the server, since we want to turn off the SO_PASSRIGHTS already on the listening socket so that there's no race between accept() and recvmsg() wrt SO_PASSRIGHTS state. However, if we do this unconditionally, the existing use case of creating a custom connection callback and enabling fd passing there would be broken. Hence, let's introduce a new flag, SD_VARLINK_SERVER_FD_PASSING_INPUT_STRICT, which when set ties the enablement of fd passing to SO_PASSRIGHTS in server, and set it for all our varlink servers. Refer to the previous commit for the rationale behind return value change in sd_varlink_set_allow_fd_passing_input().
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS
