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);
}
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,
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);
}
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);
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);
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++) {
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);
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");
}