diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-02-05 16:57:09 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-02-05 16:57:09 -0800 |
commit | 119d62ffb87b8e6fc24d1cfa040586ec94f5655a (patch) | |
tree | 64fca5075f9b92824cfcc8b0561fa522bee9b087 /ld | |
parent | 8e2470d34f4306cc3a21fdcd8099443896a61313 (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | ld/plugin.c | 9 |
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 |