rdata->rep.id = cmd.id;
rdata->rep.type = cmd.type;
rdata->fd = -1;
+
if (msg.msg_controllen >= CMSG_LEN (sizeof (int))) {
rfd = *(int *) CMSG_DATA(CMSG_FIRSTHDR (&msg));
}
enum rspamd_expression_op op, op_stack;
const gchar *p, *c, *end;
GPtrArray *operand_stack;
+ GNode *tmp;
enum {
PARSE_ATOM = 0,
return TRUE;
err:
+ while ((tmp = rspamd_expr_stack_elt_pop (operand_stack)) != NULL) {
+ g_node_destroy (tmp);
+ }
+
g_ptr_array_free (operand_stack, TRUE);
rspamd_expression_destroy (e);
}
}
- if (rule->mime_types != NULL) {
- rspamd_mempool_add_destructor (fuzzy_module_ctx->fuzzy_pool,
- (rspamd_mempool_destruct_t)rspamd_ptr_array_free_hard,
- rule->mime_types);
- }
-
if ((value = ucl_object_lookup (obj, "headers")) != NULL) {
it = NULL;
while ((cur = ucl_object_iterate (value, &it, value->type == UCL_ARRAY))
if (!g_option_context_parse (context, argc, argv, &error)) {
fprintf (stderr, "option parsing failed: %s\n", error->message);
+ g_option_context_free (context);
exit (1);
}
}
cfg->pid_file = rspamd_pidfile;
+ g_option_context_free (context);
}
/* Detect privilleged mode */