aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorDave Korn <dave.korn@artimi.com>2009-06-25 12:32:10 +0000
committerDave Korn <dave.korn@artimi.com>2009-06-25 12:32:10 +0000
commitc41ba836f2cfd3e9abe2e7b19613eb96e6428feb (patch)
treef623c26e75770f2040d3b96a19bdf9ee673d6a5c /bfd
parent15f0844bac5785d3a01ce4f54530221757487657 (diff)
downloadgdb-c41ba836f2cfd3e9abe2e7b19613eb96e6428feb.zip
gdb-c41ba836f2cfd3e9abe2e7b19613eb96e6428feb.tar.gz
gdb-c41ba836f2cfd3e9abe2e7b19613eb96e6428feb.tar.bz2
2009-06-25 Rafael Avila de Espindola <espindola@google.com>
* plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type field of struct dirent.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/plugin.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f5cbe71..0ac2820 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-25 Rafael Avila de Espindola <espindola@google.com>
+
+ * plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type
+ field of struct dirent.
+
2009-06-23 Tristan Gingold <gingold@adacore.com>
* vms.c (vms_get_synthetic_symtab): Remove duplicate definition
diff --git a/bfd/plugin.c b/bfd/plugin.c
index ca47ab6..053fdd1 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -203,11 +203,11 @@ load_plugin (void)
while ((ent = readdir (d)))
{
char *full_name;
- if (ent->d_type != DT_REG && ent->d_type != DT_LNK)
- continue;
+ struct stat s;
full_name = concat (p, "/", ent->d_name, NULL);
- found = try_load_plugin (full_name);
+ if (stat(full_name, &s) == 0 && S_ISREG (s.st_mode))
+ found = try_load_plugin (full_name);
free (full_name);
if (found)
break;