Page MenuHomeFreeBSD

cap_fileargs: Fix a descriptor leak in the service process.
ClosedPublic

Authored by markj on Jun 1 2020, 2:44 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Jan 29, 11:14 AM
Unknown Object (File)
Thu, Jan 23, 9:32 PM
Unknown Object (File)
Dec 15 2024, 5:15 AM
Unknown Object (File)
Oct 4 2024, 9:32 AM
Unknown Object (File)
Oct 3 2024, 10:48 PM
Unknown Object (File)
Sep 26 2024, 5:16 AM
Unknown Object (File)
Sep 25 2024, 10:09 AM
Unknown Object (File)
Sep 25 2024, 10:09 AM
Subscribers

Details

Summary

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
processes.

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

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable