@@ -781,7 +781,9 @@ rspamd_control_ignore_io_handler (int fd, short what, void *ud) | |||
struct rspamd_control_reply rep; | |||
/* At this point we just ignore replies from the workers */ | |||
(void) !read (fd, &rep, sizeof (rep)); | |||
if (read (fd, &rep, sizeof (rep)) == -1) { | |||
msg_debug("cannot read %d bytes: %s", sizeof(rep), strerror(errno)); | |||
} | |||
rspamd_control_stop_pending (elt); | |||
} | |||
@@ -588,8 +588,10 @@ rspamd_symcache_process_dep (struct rspamd_symcache *cache, | |||
vdit = rspamd_symcache_find_filter (cache, dep->sym, false); | |||
if (!vdit) { | |||
msg_err_cache ("cannot add dependency from %s on %s: no dependency symbol registered", | |||
dep->sym, dit->symbol); | |||
if (dit) { | |||
msg_err_cache ("cannot add dependency from %s on %s: no dependency symbol registered", | |||
dep->sym, dit->symbol); | |||
} | |||
} | |||
else { | |||
msg_debug_cache ("process virtual dependency %s(%d) on %s(%d)", it->symbol, | |||
@@ -698,7 +700,7 @@ rspamd_symcache_post_init (struct rspamd_symcache *cache) | |||
vit = rspamd_symcache_find_filter (cache, ddep->from, false); | |||
it = rspamd_symcache_find_filter (cache, ddep->from, true); | |||
if (it == NULL) { | |||
if (it == NULL || vit == NULL) { | |||
msg_err_cache ("cannot register delayed dependency between %s and %s: " | |||
"%s is missing", ddep->from, ddep->to, ddep->from); | |||
} |
@@ -637,7 +637,7 @@ rspamd_ssl_connection_new (gpointer ssl_ctx, struct ev_loop *ev_base, | |||
conn->verify_peer = verify_peer; | |||
if (log_tag) { | |||
rspamd_strlcpy (conn->log_tag, log_tag, sizeof (log_tag)); | |||
rspamd_strlcpy (conn->log_tag, log_tag, sizeof (conn->log_tag)); | |||
} | |||
else { | |||
rspamd_random_hex (conn->log_tag, sizeof (log_tag) - 1); |
@@ -1183,7 +1183,9 @@ rspamd_parse_expression (const gchar *line, gsize len, | |||
return TRUE; | |||
error_label: | |||
msg_debug_expression ("fatal error: %e", *err); | |||
if (err && *err) { | |||
msg_debug_expression ("fatal expression parse error: %e", *err); | |||
} | |||
while ((tmp = rspamd_expr_stack_elt_pop (operand_stack)) != NULL) { | |||
g_node_destroy (tmp); |
@@ -272,25 +272,22 @@ rspamd_fstrhash_lc (const rspamd_ftok_t * str, gboolean is_utf) | |||
p = str->begin; | |||
hval = str->len; | |||
end = p + str->len; | |||
if (is_utf) { | |||
while (end < str->begin + str->len) { | |||
if (rspamd_fast_utf8_validate (p, str->len) != 0) { | |||
return rspamd_fstrhash_lc (str, FALSE); | |||
} | |||
while (p < end) { | |||
uc = g_unichar_tolower (g_utf8_get_char (p)); | |||
for (j = 0; j < sizeof (gunichar); j++) { | |||
t = (uc >> (j * 8)) & 0xff; | |||
if (t != 0) { | |||
hval = fstrhash_c (t, hval); | |||
} | |||
if (rspamd_fast_utf8_validate (p, str->len) != 0) { | |||
return rspamd_fstrhash_lc (str, FALSE); | |||
} | |||
while (p < end) { | |||
uc = g_unichar_tolower (g_utf8_get_char (p)); | |||
for (j = 0; j < sizeof (gunichar); j++) { | |||
t = (uc >> (j * 8)) & 0xff; | |||
if (t != 0) { | |||
hval = fstrhash_c (t, hval); | |||
} | |||
p = g_utf8_next_char (p); | |||
} | |||
p = end + 1; | |||
p = g_utf8_next_char (p); | |||
} | |||
} | |||
else { | |||
for (i = 0; i < str->len; i++, p++) { |
@@ -1521,6 +1521,8 @@ lua_tcp_request (lua_State *L) | |||
event_loop = *(struct ev_loop **)lua_touserdata (L, -1); | |||
} | |||
else { | |||
g_free (cbd); | |||
return luaL_error (L, "event loop is required"); | |||
} | |||
lua_pop (L, 1); | |||
@@ -1693,6 +1695,8 @@ lua_tcp_request (lua_State *L) | |||
if (resolver == NULL && cfg == NULL && task == NULL) { | |||
g_free (cbd); | |||
g_free (iov); | |||
return luaL_error (L, "tcp request has bad params: one of " | |||
"{resolver,task,config} should be set"); | |||
} |