server: Use a separate binary to keep PAM password around #494
Merged
Conversation
Because we want the service to be started when the session starts. Otherwise we won't be able to pass the PAM secret if auto login is enabled to the daemon binary.
Currently, we used to fork/exec the daemon from pam module, pass it the secret through stdin, till oo7-daemon is started by systemd which would pass the dbus session bus env variable back to the main fork/exec oo7-daemon process so it can start the session. That ended up being a racy implementation. Instead, use a separate helper binary for fork/exec, make it store the secret and pass it to oo7-daemon once it is up and ready through a memfd passed via SCM_RIGHTS on a Unix socket.
c347b38 to
0a31584
Compare
📊 Code Coverage Report
Coverage report generated by cargo-tarpaulin |
By making a shared helper and use it all over the place.
89858d9 to
5641ead
Compare
5641ead to
6be6262
Compare
Ignore SIGPIPE and reset SIGCHLD to SIG_DFL before forking to prevent broken pipes from killing the login manager and ensure waitpid works correctly.
Instead do it after 1m of being unused
The collections mutex was held while registering objects on D-Bus via object_server.at(). Incoming D-Bus calls during registration could try to acquire the same lock, causing a deadlock.
cec593c to
83ab991
Compare
When running over ssh, there is no prompter available so you won't be able to unlock the keyring and access your precious data. secret-tool used an internal iface that is only implemented by gnome-keyring-daemon. Instead, mimic the iface used by plasma (which is the direction we should take in the future for prompting) and implement something basic as a fallback for cli usage. That makes oo7-cli usable from cli just fine in those edge cases.
83ab991 to
9477d29
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See commits.