diff options
author | Bruce Momjian <bruce@momjian.us> | 1997-05-22 23:57:27 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1997-05-22 23:57:27 +0000 |
commit | 148f7203fa8d0511834f96f6939a913f1e38aaed (patch) | |
tree | d83a0543f617ff00d4ed162dafbef21cfbcf5c63 | |
parent | 65ff0feacf98c4b7096a3c5df4dd6efd4ffe5fa2 (diff) | |
download | postgresql-148f7203fa8d0511834f96f6939a913f1e38aaed.tar.gz postgresql-148f7203fa8d0511834f96f6939a913f1e38aaed.zip |
Preserve putenv() memory in psql \connect user fix.
-rw-r--r-- | src/bin/psql/psql.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/bin/psql/psql.c b/src/bin/psql/psql.c index 6f62b57ccea..1597c5561b4 100644 --- a/src/bin/psql/psql.c +++ b/src/bin/psql/psql.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.61 1997/05/22 18:55:35 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.62 1997/05/22 23:57:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -836,7 +836,7 @@ do_connect(const char *new_dbname, fprintf(stderr, "\\connect must be followed by a database name\n"); else { PGconn *olddb = settings->db; - char *userenv; + static char *userenv = NULL; printf("closing connection to database: %s\n", dbname); if (new_user != NULL) { @@ -844,10 +844,11 @@ do_connect(const char *new_dbname, PQsetdb() does not allow us to specify the user, so we have to do it via PGUSER */ + if (userenv != NULL) + free(userenv); userenv = malloc(strlen("PGUSER=") + strlen(new_user) + 1); sprintf(userenv,"PGUSER=%s",new_user); - putenv(userenv); - free(userenv); + putenv(userenv); /* putenv() continues to use memory in env. */ } settings->db = PQsetdb(PQhost(olddb), PQport(olddb), NULL, NULL, new_dbname); |