diff options
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/descriptors.cc | 4 |
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); { |