summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/fhandler_process.cc13
2 files changed, 13 insertions, 6 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 626a52901..ed3bff290 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2002-05-02 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler_proc.cc (fhandler_proc::fstat): Prime with information from
+ fhandler_base::fstat. Use defines rather than constants for permission
+ settings.
+
2002-04-30 Eric Blake <ebb9@email.byu.edu>
* path.cc (hash_path_name): Improve hash function strength.
diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc
index 32812c5b8..b05e07bf0 100644
--- a/winsup/cygwin/fhandler_process.cc
+++ b/winsup/cygwin/fhandler_process.cc
@@ -78,26 +78,27 @@ fhandler_process::fhandler_process ():
}
int
-fhandler_process::fstat (struct __stat64 *buf, path_conv *path)
+fhandler_process::fstat (struct __stat64 *buf, path_conv *pc)
{
int file_type = exists ((const char *) get_name ());
+ (void) fhandler_base::fstat (buf, pc);
+ buf->st_mode &= ~_IFMT & NO_W;
+
switch (file_type)
{
case 0:
set_errno (ENOENT);
return -1;
case 1:
- buf->st_mode = S_IFDIR | 0555;
- buf->st_nlink = 1;
+ buf->st_mode |= S_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH;
return 0;
case 2:
- buf->st_mode = S_IFDIR | 0555;
+ buf->st_mode |= S_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH;
buf->st_nlink = PROCESS_LINK_COUNT;
return 0;
default:
case -1:
- buf->st_mode = S_IFREG | 0444;
- buf->st_nlink = 1;
+ buf->st_mode |= S_IFREG;
return 0;
}
}