aboutsummaryrefslogtreecommitdiff
path: root/ld/plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'ld/plugin.c')
-rw-r--r--ld/plugin.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ld/plugin.c b/ld/plugin.c
index ffa0dd3..36094dd 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -1049,9 +1049,14 @@ plugin_call_claim_file (const struct ld_plugin_input_file *file, int *claimed)
{
if (curplug->claim_file_handler)
{
+ off_t cur_offset;
enum ld_plugin_status rv;
+
called_plugin = curplug;
+ cur_offset = lseek (file->fd, 0, SEEK_CUR);
rv = (*curplug->claim_file_handler) (file, claimed);
+ if (!*claimed)
+ lseek (file->fd, cur_offset, SEEK_SET);
called_plugin = NULL;
if (rv != LDPS_OK)
set_plugin_error (curplug->name);