diff options
author | Magnus Hagander <magnus@hagander.net> | 2008-07-04 10:50:18 +0000 |
---|---|---|
committer | Magnus Hagander <magnus@hagander.net> | 2008-07-04 10:50:18 +0000 |
commit | d06a8d054d9d91f759cb8e731aa054138d073369 (patch) | |
tree | a2a9a9e8fd0a77fb4b5f2748e26e04f472e29391 /src | |
parent | c63147d6f0e86d96ffb315147f36af613a35c2ce (diff) | |
download | postgresql-d06a8d054d9d91f759cb8e731aa054138d073369.tar.gz postgresql-d06a8d054d9d91f759cb8e731aa054138d073369.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.c | 9 |
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..066e0283a11 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.5 2008/07/04 10:50:18 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 = '/'; |