From 0e9e888ebdc0fa99e8bea45ac3849e30f9ae5599 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Tue, 4 Dec 2001 16:17:48 +0000
Subject: [PATCH] Suppress data directory access-permissions check when
 __CYGWIN__, per recent pghackers discussions.  Improving this should be a
 TODO for 7.3.

---
 src/backend/postmaster/postmaster.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index a5553815fb7..4f97e7ef9a6 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.261 2001/11/12 05:43:24 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.262 2001/12/04 16:17:48 tgl Exp $
  *
  * NOTES
  *
@@ -280,7 +280,9 @@ checkDataDir(const char *checkdir)
 {
 	char		path[MAXPGPATH];
 	FILE	   *fp;
+#ifndef __CYGWIN__
 	struct stat stat_buf;
+#endif
 
 	if (checkdir == NULL)
 	{
@@ -295,7 +297,13 @@ checkDataDir(const char *checkdir)
 
 	/*
 	 * Check if the directory has group or world access.  If so, reject.
+	 *
+	 * XXX temporarily suppress check when on Windows, because there may
+	 * not be proper support for Unix-y file permissions.  Need to think
+	 * of a reasonable check to apply on Windows.
 	 */
+#ifndef __CYGWIN__
+
 	if (stat(checkdir, &stat_buf) == -1)
 	{
 		if (errno == ENOENT)
@@ -309,6 +317,8 @@ checkDataDir(const char *checkdir)
 		elog(FATAL, "data directory %s has group or world access; permissions should be u=rwx (0700)",
 			 checkdir);
 
+#endif /* !__CYGWIN__ */
+
 	/* Look for PG_VERSION before looking for pg_control */
 	ValidatePgVersion(checkdir);
 
-- 
GitLab