* dir.cc (readdir): Ensure that errno is *only* set when we've run out of
filenames. * fhandler.cc (fhandler_disk_file::fstat): Use modern method for saving errno, making it effective for the whole function.
This commit is contained in:
@ -865,7 +865,7 @@ fhandler_disk_file::fstat (struct stat *buf)
|
||||
{
|
||||
int res = 0; // avoid a compiler warning
|
||||
BY_HANDLE_FILE_INFORMATION local;
|
||||
int old_errno = get_errno ();
|
||||
save_errno saved_errno;
|
||||
|
||||
memset (buf, 0, sizeof (*buf));
|
||||
|
||||
@ -907,12 +907,10 @@ fhandler_disk_file::fstat (struct stat *buf)
|
||||
|
||||
if (!get_win32_name ())
|
||||
{
|
||||
set_errno (ENOENT);
|
||||
saved_errno.set (ENOENT);
|
||||
return -1;
|
||||
}
|
||||
|
||||
set_errno (old_errno);
|
||||
|
||||
buf->st_atime = to_time_t (&local.ftLastAccessTime);
|
||||
buf->st_mtime = to_time_t (&local.ftLastWriteTime);
|
||||
buf->st_ctime = to_time_t (&local.ftCreationTime);
|
||||
|
Reference in New Issue
Block a user