breadlock: fail-secure dispatch errors, zeroize password material, distinguish PAM config errors, fix output leak and key repeat
- main.rs: dispatch-loop errors no longer silently exit; bounded retry with loud logging, and explicitly never call unlock() on an error path (would turn a fail-secure crash into a fail-open one) - Cargo.toml/state.rs/keyboard.rs/auth/*: password buffer is now Zeroizing<String>, with explicit zero-then-truncate on backspace and zeroize on clear/submit; also zeroes pam-client2's internal Conversation copy after use - state.rs/main.rs: new AuthState::ConfigError, distinct on-screen message and error!-level log for PAM context-init failures vs ordinary wrong password - lock/surface.rs/state.rs: LockSurface now tracks its wl_output so output_destroyed can remove it, fixing the surfaces Vec leak on monitor unplug - input/keyboard.rs: bind the keyboard via get_keyboard_with_repeat so held keys (e.g. backspace) actually repeat, regardless of whether the compositor implements server-side wl_keyboard repeat
This commit is contained in:
parent
bffa521f47
commit
38aede9126
8 changed files with 176 additions and 25 deletions
7
Cargo.lock
generated
7
Cargo.lock
generated
|
|
@ -108,6 +108,7 @@ dependencies = [
|
|||
"tracing",
|
||||
"tracing-subscriber",
|
||||
"wayland-client",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -2247,6 +2248,12 @@ version = "0.3.3"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524"
|
||||
|
||||
[[package]]
|
||||
name = "zeroize"
|
||||
version = "1.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
|
||||
|
||||
[[package]]
|
||||
name = "zmij"
|
||||
version = "1.0.21"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue