aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-02-05 16:57:09 -0800
committerH.J. Lu <hjl.tools@gmail.com>2015-02-05 16:57:09 -0800
commit119d62ffb87b8e6fc24d1cfa040586ec94f5655a (patch)
tree64fca5075f9b92824cfcc8b0561fa522bee9b087 /ld
parent8e2470d34f4306cc3a21fdcd8099443896a61313 (diff)
downloadgdb-119d62ffb87b8e6fc24d1cfa040586ec94f5655a.zip
gdb-119d62ffb87b8e6fc24d1cfa040586ec94f5655a.tar.gz
gdb-119d62ffb87b8e6fc24d1cfa040586ec94f5655a.tar.bz2
Close fd only if fd != -1
This patch closes fd only if fd != -1. * plugin.c (release_input_file): Set fd to -1 after closing it. (plugin_maybe_claim): Close fd only if fd != -1.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/plugin.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 0d767ba..4ae174b 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,10 @@
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
* plugin.c: Include <errno.h>.
(errno): New. Declare if needed.
diff --git a/ld/plugin.c b/ld/plugin.c
index 28236f2..ae0ac89 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -512,10 +512,13 @@ get_view (const void *handle, const void **viewp)
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;
}
@@ -964,7 +967,7 @@ plugin_maybe_claim (struct ld_plugin_input_file *file,
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