This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: PR gold/17896: Plugin_manager::release_input_file leaks file descriptors


> +       PR gold/17896
> +       * plugin.cc: Include <unistd.h> and <cerrno>.
> +       (Plugin_manager::release_input_file): Close file descriptor when
> +       called from the claim_file hook.  Otherwise, release the object.
> +    if (::close(f.fd) < 0)

File descriptors for object files are managed by the Descriptors
class; we should never call ::close() directly.

Calling obj->unlock() on the file should be sufficient to release the
descriptor. It may not be closed immediately, but it will get closed
eventually if we get close to running out of file descriptors. If
Descriptors::close_some_descriptor() for some reason doesn't consider
that descriptor available for closing, then there's a bug elsewhere.

-cary


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]