From: Vsevolod Stakhov Date: Thu, 19 Mar 2015 18:14:23 +0000 (+0000) Subject: Add code to destroy mime atom. X-Git-Tag: 0.9.0~451^2~17 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3a344136cc275fa2e0879d10e6ef119e882b58c9;p=rspamd.git Add code to destroy mime atom. --- diff --git a/src/libmime/mime_expressions.c b/src/libmime/mime_expressions.c index bbe411f01..acc2caf0a 100644 --- a/src/libmime/mime_expressions.c +++ b/src/libmime/mime_expressions.c @@ -588,13 +588,33 @@ rspamd_mime_expr_process (gpointer input, rspamd_expression_atom_t *atom) static gint rspamd_mime_expr_priority (rspamd_expression_atom_t *atom) { - + /* TODO: implement priorities for mime expressions */ + return 0; } static void rspamd_mime_expr_destroy (rspamd_expression_atom_t *atom) { + struct rspamd_mime_atom *mime_atom = atom->data; + guint i; + struct expression_argument *arg; + if (mime_atom) { + if (mime_atom->is_function) { + /* Need to cleanup arguments */ + for (i = 0; i < mime_atom->d.func->args->len; i ++) { + arg = &g_array_index (mime_atom->d.func->args, + struct expression_argument, i); + + if (arg->type == EXPRESSION_ARGUMENT_NORMAL) { + g_free (arg->data); + } + } + g_array_free (mime_atom->d.func->args, TRUE); + } + /* XXX: regexp shouldn't be special */ + g_slice_free1 (sizeof (*mime_atom), mime_atom); + } } gboolean