+2015-02-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * plugin.c (release_input_file): Set fd to -1 after closing it.
+ (plugin_maybe_claim): Close fd only if fd != -1.
+
2015-02-05 H.J. Lu <hongjiu.lu@intel.com>
PR ld/17878
static enum ld_plugin_status
release_input_file (const void *handle)
{
- const plugin_input_file_t *input = handle;
+ plugin_input_file_t *input = (plugin_input_file_t *) handle;
ASSERT (called_plugin);
if (input->fd != -1)
- close (input->fd);
+ {
+ close (input->fd);
+ input->fd = -1;
+ }
return LDPS_OK;
}
einfo (_("%P%F: %s: plugin reported error claiming file\n"),
plugin_error_plugin ());
- if (bfd_check_format (entry->the_bfd, bfd_object))
+ if (input->fd != -1 && bfd_check_format (entry->the_bfd, bfd_object))
{
/* FIXME: fd belongs to us, not the plugin. IR for GCC plugin,
which doesn't need fd after plugin_call_claim_file, is