aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/descriptors.cc4
2 files changed, 8 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 9dd8787..96abf8a 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2009-03-19 Ian Lance Taylor <iant@google.com>
+
+ * descriptors.cc (Descriptors::open): Check that the options are
+ valid before using them.
+
2009-03-18 Ian Lance Taylor <iant@google.com>
* script-sections.h: Include <list>.
diff --git a/gold/descriptors.cc b/gold/descriptors.cc
index 6937741..b05bdf1 100644
--- a/gold/descriptors.cc
+++ b/gold/descriptors.cc
@@ -130,7 +130,9 @@ Descriptors::open(int descriptor, const char* name, int flags, int mode)
// header file but not supported by the kernel.
// Unfortunately there doesn't seem to be any obvious way to
// detect that, as unknown flags passed to open are ignored.
- if (O_CLOEXEC == 0 && parameters->options().has_plugins())
+ if (O_CLOEXEC == 0
+ && parameters->options_valid()
+ && parameters->options().has_plugins())
fcntl(new_descriptor, F_SETFD, FD_CLOEXEC);
{