diff options
author | vprus <vprus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-16 12:30:49 +0000 |
---|---|---|
committer | vprus <vprus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-16 12:30:49 +0000 |
commit | 7d6f49d628f8d236acbd541eb7357fe24dea8ab3 (patch) | |
tree | 48d94c15d937cd8daeaa454bfbf4e4619cdad862 | |
parent | e174638ff04a9c48151382a725c55994a8a8d558 (diff) | |
download | gcc-7d6f49d628f8d236acbd541eb7357fe24dea8ab3.tar.gz |
* cppfiles.c (open_file): Prevent the call
for stat from overwriting errno.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125757 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libcpp/ChangeLog | 5 | ||||
-rw-r--r-- | libcpp/files.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 205c1dd9db1..7ae04d07866 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,8 @@ +2007-06-16 Vladimir Prus <vladimir@codesourcery.com> + + * cppfiles.c (open_file): Prevent the call + for stat from overwriting errno. + 2007-06-09 Vladimir Prus <vladimir@codesourcery.com> * cppfiles.c (open_file): Account for the diff --git a/libcpp/files.c b/libcpp/files.c index b20c38e8d87..dbd25f27203 100644 --- a/libcpp/files.c +++ b/libcpp/files.c @@ -239,6 +239,9 @@ open_file (_cpp_file *file) if (stat (file->path, &file->st) == 0 && S_ISDIR (file->st.st_mode)) errno = ENOENT; + else + /* The call to stat may have reset errno. */ + errno = EACCESS; } #endif else if (errno == ENOTDIR) |