Index: src/backend/utils/adt/genfile.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/genfile.c,v
retrieving revision 1.5
diff -u -r1.5 genfile.c
--- src/backend/utils/adt/genfile.c	15 Aug 2005 23:00:14 -0000	1.5
+++ src/backend/utils/adt/genfile.c	28 Aug 2005 22:32:21 -0000
@@ -62,11 +62,18 @@
 
 	if (is_absolute_path(filename))
 	{
+       int datadir_len = strlen(DataDir);
+       int logdir_len = strlen(Log_directory);
+        
 		/* The log directory might be outside our datadir, but allow it */
-	    if (is_absolute_path(Log_directory) &&
-			strncmp(filename, Log_directory, strlen(Log_directory)) == 0 &&
-			(filename[strlen(Log_directory)] == '/' ||
-			 filename[strlen(Log_directory)] == '\0'))
+       if ((strncmp(filename, Log_directory, logdir_len) == 0 &&
+           (filename[logdir_len] == '/' ||
+			filename[logdir_len] == '\\' ||
+           filename[logdir_len] == '\0')) ||
+           (strncmp(filename, DataDir, datadir_len) == 0 &&
+           (filename[datadir_len] == '/' ||
+           filename[datadir_len] == '\\' ||
+           filename[datadir_len] == '\0')))
 			return filename;
 
 	    ereport(ERROR,