diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-12-18 22:49:34 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-12-18 22:49:34 +0000 |
commit | 7748c5ee2987e8ae9bfae448cefa9d2dfb7a79e3 (patch) | |
tree | c56194e296d754d084f729d6b0ab617e8b105159 /src/backend | |
parent | cf88f005f2662fd1dec2206d0ce1f3ab316c54e0 (diff) | |
download | postgresql-7748c5ee2987e8ae9bfae448cefa9d2dfb7a79e3.tar.gz postgresql-7748c5ee2987e8ae9bfae448cefa9d2dfb7a79e3.zip |
Fix memory leak with SSL connections due to missing X509_free() calls.
Per Neil Conway.
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/libpq/be-secure.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c index 1e69f14fd4b..bd9edc1e88c 100644 --- a/src/backend/libpq/be-secure.c +++ b/src/backend/libpq/be-secure.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/be-secure.c,v 1.43 2003/09/26 15:27:31 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/be-secure.c,v 1.43.2.1 2003/12/18 22:49:34 tgl Exp $ * * Since the server static private key ($DataDir/server.key) * will normally be stored unencrypted so that the database @@ -714,6 +714,9 @@ destroy_SSL(void) static int open_server_SSL(Port *port) { + Assert(!port->ssl); + Assert(!port->peer); + if (!(port->ssl = SSL_new(SSL_context)) || !SSL_set_fd(port->ssl, port->sock) || SSL_accept(port->ssl) <= 0) @@ -764,6 +767,12 @@ close_SSL(Port *port) SSL_free(port->ssl); port->ssl = NULL; } + + if (port->peer) + { + X509_free(port->peer); + port->peer = NULL; + } } /* |