aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2008-07-04 10:50:20 +0000
committerMagnus Hagander <magnus@hagander.net>2008-07-04 10:50:20 +0000
commitbbfb4a0ab93c18927acb53b7cf37f17dc58d3d39 (patch)
tree9b92c8563c33aafdc39f3be4e982352f90ada3dd /src
parent4dad6c94fe79cc1edcf6957bed7471685a519fe8 (diff)
downloadpostgresql-bbfb4a0ab93c18927acb53b7cf37f17dc58d3d39.tar.gz
postgresql-bbfb4a0ab93c18927acb53b7cf37f17dc58d3d39.zip
Fix a couple of bugs in win32 shmem name generation:
* Don't cut off the prefix. With this fix, it's again readable. * Properly store it in the Global namespace as intended.
Diffstat (limited to 'src')
-rw-r--r--src/backend/port/win32_shmem.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/backend/port/win32_shmem.c b/src/backend/port/win32_shmem.c
index d00e95d16a2..d3532f222ae 100644
--- a/src/backend/port/win32_shmem.c
+++ b/src/backend/port/win32_shmem.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/port/win32_shmem.c,v 1.4 2008/01/01 19:45:51 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/port/win32_shmem.c,v 1.4.2.1 2008/07/04 10:50:20 mha Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,18 +47,17 @@ GetSharedMemName(void)
elog(FATAL, "could not get size for full pathname of datadir %s: %lu",
DataDir, GetLastError());
- retptr = malloc(bufsize + 1 + 18); /* 1 NULL and 18 for
- * Global\PostgreSQL: */
+ retptr = malloc(bufsize + 18); /* 18 for Global\PostgreSQL: */
if (retptr == NULL)
elog(FATAL, "could not allocate memory for shared memory name");
strcpy(retptr, "Global\\PostgreSQL:");
- r = GetFullPathName(DataDir, bufsize, retptr + 11, NULL);
+ r = GetFullPathName(DataDir, bufsize, retptr + 18, NULL);
if (r == 0 || r > bufsize)
elog(FATAL, "could not generate full pathname for datadir %s: %lu",
DataDir, GetLastError());
- for (cp = retptr; *cp; cp++)
+ for (cp = retptr + 18; *cp; cp++)
if (*cp == '\\')
*cp = '/';