HomeFreeBSD

security/plasma5-kwallet-pam: make it work

Description

security/plasma5-kwallet-pam: make it work

  • Replace the use of socat with netcat which is in base. Note that netcat is bidirectional. It sends input from stdin over the socket and input from the socket to stdout. After receiving EOF on stdin it keeps polling the socket for input until the other end closes the connection, which in the case of kwalletd never happens because it's also waiting for more data until the other end closes the connection. Call netcat using "nc | :" so its stdout is a pipe of which the far end closes immediately (stdout itself stays open). Without a valid stdout netcat becomes unidirectional. Using "nc >&-" doesn't work because it closes stdout itself and its descriptor will be reused for the socket so netcat thinks it has a valid stdout.
  • Fix an off-by-one buffer size check.
  • Fix a call to bind(2). The third argument should be the size of the sockaddr struct. It contains an extra field besides sun_path and sun_family in BSD so the name of the socket got truncated.

PR: 228291
Submitted by: tijl, mikael.urankar@gmail.com

Details

Provenance
tcbernerAuthored on
Parents
rP510086: - Update to 15322
Branches
Unknown
Tags
Unknown