diff options
author | unknown <msvensson@neptunus.(none)> | 2006-11-07 15:20:24 +0100 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2006-11-07 15:20:24 +0100 |
commit | c8d0137cab94af518559e16e3eb358fced5468ac (patch) | |
tree | 5025e34d504aa58424ac727e8adb3279151e76e2 /vio | |
parent | aa5a25df7229d10a10f45f03f8aa8a884f85828b (diff) | |
download | mariadb-git-c8d0137cab94af518559e16e3eb358fced5468ac.tar.gz |
Bug#23981 memory leaks from yassl code + other
- Fix memory leak in vio_VioSSLFD that occurs when one of the calls to SSL_* function fails. As in the "ssl_des"
test case where the server is currently not supposed to be able to read the specific cert/key file.
- Change error message to be generic as it's called both from server and client code.
vio/viosslfactories.c:
Fix memory leak in vio_VioSSLFD that occurs when one of the calls to SSL_* function fails.
Change error message to be generic as it's called both from server and client code.
Diffstat (limited to 'vio')
-rw-r--r-- | vio/viosslfactories.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/vio/viosslfactories.c b/vio/viosslfactories.c index 9fd18579351..34ce1fefaa9 100644 --- a/vio/viosslfactories.c +++ b/vio/viosslfactories.c @@ -86,8 +86,7 @@ vio_set_cert_stuff(SSL_CTX *ctx, const char *cert_file, const char *key_file) if (SSL_CTX_use_certificate_file(ctx, cert_file, SSL_FILETYPE_PEM) <= 0) { DBUG_PRINT("error",("unable to get certificate from '%s'\n", cert_file)); - /* FIX stderr */ - fprintf(stderr,"Error when connection to server using SSL:"); + fprintf(stderr,"SSL error: "); ERR_print_errors_fp(stderr); fprintf(stderr,"Unable to get certificate from '%s'\n", cert_file); fflush(stderr); @@ -100,8 +99,7 @@ vio_set_cert_stuff(SSL_CTX *ctx, const char *cert_file, const char *key_file) if (SSL_CTX_use_PrivateKey_file(ctx, key_file, SSL_FILETYPE_PEM) <= 0) { DBUG_PRINT("error", ("unable to get private key from '%s'\n", key_file)); - /* FIX stderr */ - fprintf(stderr,"Error when connection to server using SSL:"); + fprintf(stderr,"SSL error: "); ERR_print_errors_fp(stderr); fprintf(stderr,"Unable to get private key from '%s'\n", key_file); fflush(stderr); @@ -252,6 +250,7 @@ new_VioSSLFd(const char *key_file, const char *cert_file, { DBUG_PRINT("error", ("failed to set ciphers to use")); report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); my_free((void*)ssl_fd,MYF(0)); DBUG_RETURN(0); } @@ -264,6 +263,7 @@ new_VioSSLFd(const char *key_file, const char *cert_file, { DBUG_PRINT("error", ("SSL_CTX_set_default_verify_paths failed")); report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); my_free((void*)ssl_fd,MYF(0)); DBUG_RETURN(0); } @@ -273,6 +273,7 @@ new_VioSSLFd(const char *key_file, const char *cert_file, { DBUG_PRINT("error", ("vio_set_cert_stuff failed")); report_errors(); + SSL_CTX_free(ssl_fd->ssl_context); my_free((void*)ssl_fd,MYF(0)); DBUG_RETURN(0); } |