Page MenuHomeFreeBSD

cap_fileargs: Fix a descriptor leak in the service process.

Authored by markj on Jun 1 2020, 2:44 PM.



The service handler for fileargs_open() tries to pre-open multiple files
and pass descriptors for each back to the sandboxed process in a single
message. This is to amortize the cost of round-trips between the two

The service process adds a "cache" nvlist to the reply to "open",
containing file descriptors for pre-opened files. However, when adding
that nvlist to the reply, it was making a copy, leaving the cached FDs
open in the service process. They are effectively leaked, which causes
problems when an FD limit is placed on the parent process.

While here, fix spelling in a local variable name.

Diff Detail

rS FreeBSD src repository - subversion
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.