aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/init/findbe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/init/findbe.c')
-rw-r--r--src/backend/utils/init/findbe.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/backend/utils/init/findbe.c b/src/backend/utils/init/findbe.c
index f08d2991a80..1839b7a2648 100644
--- a/src/backend/utils/init/findbe.c
+++ b/src/backend/utils/init/findbe.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.37 2003/08/04 02:40:06 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.38 2003/11/11 03:53:33 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -49,12 +49,23 @@ ValidateBinary(char *path)
uid_t euid;
struct group *gp;
struct passwd *pwp;
+ char path_exe[MAXPGPATH + 2 + strlen(".exe")];
#endif
int i;
int is_r = 0;
int is_x = 0;
int in_grp = 0;
+#ifdef WIN32
+ /* Win32 requires a .exe suffix for stat() */
+ if (strlen(path) >= 4 && strcmp(path + strlen(path) - strlen(".exe"), ".exe") != 0)
+ {
+ strcpy(path_exe, path);
+ strcat(path_exe, ".exe");
+ path = path_exe;
+ }
+#endif
+
/*
* Ensure that the file exists and is a regular file.
*