diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2007-06-16 12:30:49 +0000 |
---|---|---|
committer | Vladimir Prus <vprus@gcc.gnu.org> | 2007-06-16 12:30:49 +0000 |
commit | 71995ede980910b2abd7b4aa039be294abdc7a97 (patch) | |
tree | 48d94c15d937cd8daeaa454bfbf4e4619cdad862 /libcpp | |
parent | 6b889d891d24d2edbdb8554d0c1b0c3311799ae3 (diff) |
cppfiles.c (open_file): Prevent the call for stat from overwriting errno.
* cppfiles.c (open_file): Prevent the call
for stat from overwriting errno.
From-SVN: r125757
Diffstat (limited to 'libcpp')
-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) |