commit 11da6af: [Minor] Fix allocation and check issues

Vsevolod Stakhov vsevolod at highsecure.ru
Wed Jul 8 13:35:08 UTC 2020


Author: Vsevolod Stakhov
Date: 2020-07-08 13:42:00 +0100
URL: https://github.com/rspamd/rspamd/commit/11da6af8ac176ffad051f246515ab008de8456a9 (HEAD -> master)

[Minor] Fix allocation and check issues

---
 src/plugins/fuzzy_check.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c
index 6d869bd1f..d0faaed95 100644
--- a/src/plugins/fuzzy_check.c
+++ b/src/plugins/fuzzy_check.c
@@ -1489,10 +1489,10 @@ fuzzy_cmd_extension_length (struct rspamd_task *task,
 		}
 	}
 
-	if (rspamd_inet_address_get_af (task->from_addr) == AF_INET) {
+	if (task->from_addr && rspamd_inet_address_get_af (task->from_addr) == AF_INET) {
 		total += sizeof (struct in_addr) + 1;
 	}
-	else if (rspamd_inet_address_get_af (task->from_addr) == AF_INET6) {
+	else if (task->from_addr&& rspamd_inet_address_get_af (task->from_addr) == AF_INET6) {
 		total += sizeof (struct in6_addr) + 1;
 	}
 
@@ -1537,7 +1537,7 @@ fuzzy_cmd_write_extensions (struct rspamd_task *task,
 		}
 	}
 
-	if (rspamd_inet_address_get_af (task->from_addr) == AF_INET) {
+	if (task->from_addr && rspamd_inet_address_get_af (task->from_addr) == AF_INET) {
 		if (available >= sizeof (struct in_addr) + 1) {
 			guint klen;
 			guchar *inet_data = rspamd_inet_address_get_hash_key (task->from_addr, &klen);
@@ -1551,7 +1551,7 @@ fuzzy_cmd_write_extensions (struct rspamd_task *task,
 			written += klen + 1;
 		}
 	}
-	else if (rspamd_inet_address_get_af (task->from_addr) == AF_INET6) {
+	else if (task->from_addr && rspamd_inet_address_get_af (task->from_addr) == AF_INET6) {
 		if (available >= sizeof (struct in6_addr) + 1) {
 			guint klen;
 			guchar *inet_data = rspamd_inet_address_get_hash_key (task->from_addr, &klen);
@@ -1870,7 +1870,8 @@ fuzzy_cmd_from_data_part (struct fuzzy_rule *rule,
 		additional_data = ((guchar *)enccmd) + sizeof (*enccmd);
 	}
 	else {
-		cmd = rspamd_mempool_alloc0 (task->task_pool, sizeof (*cmd));
+		cmd = rspamd_mempool_alloc0 (task->task_pool,
+				sizeof (*cmd) + additional_length);
 		additional_data = ((guchar *)cmd) + sizeof (*cmd);
 	}
 
@@ -2759,7 +2760,8 @@ fuzzy_controller_io_callback (gint fd, short what, void *arg)
 				if (*(session->err) == NULL) {
 					g_set_error (session->err,
 						g_quark_from_static_string (M),
-						errno, "write socket error: %s", strerror (errno));
+						errno, "write socket error: %s",
+						strerror (errno));
 				}
 				ret = return_error;
 			}


More information about the Commits mailing list