diff options
author | Hans Zandbelt <hans.zandbelt@zmartzone.eu> | 2021-04-11 18:49:38 +0200 |
---|---|---|
committer | Hans Zandbelt <hans.zandbelt@zmartzone.eu> | 2021-04-11 18:49:38 +0200 |
commit | 5f4382247a0074d2080921956cd9784bbd1824c2 (patch) | |
tree | 00d522ec2474b050f9476cb4bec0d2c5f43dbe47 | |
parent | dfa33e60b07c13328133a16065d88d171a2a61d4 (diff) |
improve SSL leak fix redis/hiredis#896
Free SSL object when redisSSLConnect fails but avoid doing that for
callers of redisInitiateSSL who are supposed to manager their own SSL
object.
Signed-off-by: Hans Zandbelt <hans.zandbelt@zmartzone.eu>
-rw-r--r-- | ssl.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -351,7 +351,6 @@ static int redisSSLConnect(redisContext *c, SSL *ssl) { } hi_free(rssl); - SSL_free(ssl); return REDIS_ERR; } @@ -393,7 +392,11 @@ int redisInitiateSSLWithContext(redisContext *c, redisSSLContext *redis_ssl_ctx) } } - return redisSSLConnect(c, ssl); + if (redisSSLConnect(c, ssl) != REDIS_OK) { + goto error; + } + + return REDIS_OK; error: if (ssl) |