diff options
Diffstat (limited to 'src/backend/postmaster/postmaster.c')
| -rw-r--r-- | src/backend/postmaster/postmaster.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 240f150d62..7a1270b014 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.533 2007/07/19 19:13:43 adunstan Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.534 2007/07/23 10:16:54 mha Exp $ * * NOTES * @@ -1733,7 +1733,8 @@ ConnCreate(int serverFd) /* * Allocate GSSAPI specific state struct */ -#ifdef ENABLE_GSS +#ifndef EXEC_BACKEND +#if defined(ENABLE_GSS) || defined(ENABLE_SSPI) port->gss = (pg_gssinfo *)calloc(1, sizeof(pg_gssinfo)); if (!port->gss) { @@ -1743,6 +1744,7 @@ ConnCreate(int serverFd) ExitPostmaster(1); } #endif +#endif return port; } @@ -3344,6 +3346,19 @@ SubPostmasterMain(int argc, char *argv[]) memset(&port, 0, sizeof(Port)); read_backend_variables(argv[2], &port); + /* + * Set up memory area for GSS information. Mirrors the code in + * ConnCreate for the non-exec case. + */ +#if defined(ENABLE_GSS) || defined(ENABLE_SSPI) + port.gss = (pg_gssinfo *)calloc(1, sizeof(pg_gssinfo)); + if (!port.gss) + ereport(FATAL, + (errcode(ERRCODE_OUT_OF_MEMORY), + errmsg("out of memory"))); +#endif + + /* Check we got appropriate args */ if (argc < 3) elog(FATAL, "invalid subpostmaster invocation"); |
