* fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix R/O bit

handling on filesystems without ACL support.
This commit is contained in:
Corinna Vinschen 2007-12-11 18:57:44 +00:00
parent 22eeaf62bb
commit 5c80ea0230
2 changed files with 8 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2007-12-11 Corinna Vinschen <corinna@vinschen.de>
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix R/O bit
handling on filesystems without ACL support.
2007-12-11 Corinna Vinschen <corinna@vinschen.de> 2007-12-11 Corinna Vinschen <corinna@vinschen.de>
* localtime.cc (tzset): Guard by a muto for thread safety. * localtime.cc (tzset): Guard by a muto for thread safety.

View File

@ -553,13 +553,12 @@ fhandler_base::fstat_helper (struct __stat64 *buf,
{ {
buf->st_mode |= STD_RBITS; buf->st_mode |= STD_RBITS;
if (!::has_attribute (dwFileAttributes, FILE_ATTRIBUTE_READONLY) if (!::has_attribute (dwFileAttributes, FILE_ATTRIBUTE_READONLY))
&& !pc.isdir () && !pc.issymlink ())
buf->st_mode |= STD_WBITS; buf->st_mode |= STD_WBITS;
/* | S_IWGRP | S_IWOTH; we don't give write to group etc */ /* | S_IWGRP | S_IWOTH; we don't give write to group etc */
if (S_ISDIR (buf->st_mode)) if (pc.isdir ())
buf->st_mode |= S_IFDIR | STD_XBITS; buf->st_mode |= S_IFDIR | STD_WBITS | STD_XBITS;
else if (buf->st_mode & S_IFMT) else if (buf->st_mode & S_IFMT)
/* nothing */; /* nothing */;
else if (is_fs_special ()) else if (is_fs_special ())