diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-01-27 18:02:58 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-01-27 18:03:33 +0000 |
commit | 944588e26acadaaf7d68fd4798142e8a754fa9d3 (patch) | |
tree | 81569d93c6d250f4e9315d93a38458257ad989e2 /src | |
parent | 8a62b955e6938e8594dc340e6c419186c3a02b8a (diff) | |
download | rspamd-944588e26acadaaf7d68fd4798142e8a754fa9d3.tar.gz rspamd-944588e26acadaaf7d68fd4798142e8a754fa9d3.zip |
[Fix] Fix memory leak in HTTP maps
Issue: #1332
Diffstat (limited to 'src')
-rw-r--r-- | src/libutil/map.c | 9 | ||||
-rw-r--r-- | src/libutil/ssl_util.c | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/libutil/map.c b/src/libutil/map.c index 6fb04d4e5..72939aa7f 100644 --- a/src/libutil/map.c +++ b/src/libutil/map.c @@ -97,7 +97,8 @@ write_http_request (struct http_callback_data *cbd) } if (cbd->stage == map_load_file) { - msg->url = rspamd_fstring_new_init (cbd->data->path, strlen (cbd->data->path)); + msg->url = rspamd_fstring_append (msg->url, + cbd->data->path, strlen (cbd->data->path)); if (cbd->check && cbd->data->last_checked != 0 && cbd->stage == map_load_file) { @@ -107,11 +108,13 @@ write_http_request (struct http_callback_data *cbd) } } else if (cbd->stage == map_load_pubkey) { - msg->url = rspamd_fstring_new_init (cbd->data->path, strlen (cbd->data->path)); + msg->url = rspamd_fstring_append (msg->url, + cbd->data->path, strlen (cbd->data->path)); msg->url = rspamd_fstring_append (msg->url, ".pub", 4); } else if (cbd->stage == map_load_signature) { - msg->url = rspamd_fstring_new_init (cbd->data->path, strlen (cbd->data->path)); + msg->url = rspamd_fstring_append (msg->url, + cbd->data->path, strlen (cbd->data->path)); msg->url = rspamd_fstring_append (msg->url, ".sig", 4); } else { diff --git a/src/libutil/ssl_util.c b/src/libutil/ssl_util.c index c320dfd29..9913e48d3 100644 --- a/src/libutil/ssl_util.c +++ b/src/libutil/ssl_util.c @@ -16,6 +16,7 @@ #include "config.h" #include "libutil/util.h" +#include "libutil/logger.h" #include "ssl_util.h" #include <openssl/ssl.h> @@ -362,7 +363,7 @@ rspamd_ssl_event_handler (gint fd, short what, gpointer ud) c->handler (fd, EV_WRITE, c->handler_data); } else { - g_assert (0); + return; } } else { @@ -700,6 +701,7 @@ void rspamd_ssl_connection_free (struct rspamd_ssl_connection *conn) { if (conn) { + SSL_shutdown (conn->ssl); SSL_free (conn->ssl); if (conn->hostname) { |