summaryrefslogtreecommitdiffstats
path: root/src/expressions.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2009-03-24 19:47:10 +0300
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2009-03-24 19:47:10 +0300
commit56033466857544978d09dc4afa53c2eb359e8ea5 (patch)
tree50e27baad50b5c44ed2bb7d1ac54f84ed02174f7 /src/expressions.c
parent474a08d028bce4263a8a919fc7d5d705cd1daa45 (diff)
downloadrspamd-56033466857544978d09dc4afa53c2eb359e8ea5.tar.gz
rspamd-56033466857544978d09dc4afa53c2eb359e8ea5.zip
* Fix bug in expressions parser and optimizer
Diffstat (limited to 'src/expressions.c')
-rw-r--r--src/expressions.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/expressions.c b/src/expressions.c
index f222ea2b4..b115eba72 100644
--- a/src/expressions.c
+++ b/src/expressions.c
@@ -342,16 +342,13 @@ parse_expression (memory_pool_t *pool, char *line)
break;
case READ_FUNCTION:
- if (func == NULL) {
- func = memory_pool_alloc (pool, sizeof (struct expression_function));
- }
-
if (*p == '/') {
/* In fact it is regexp */
state = READ_REGEXP;
c ++;
p ++;
} else if (*p == '(') {
+ func = memory_pool_alloc (pool, sizeof (struct expression_function));
func->name = memory_pool_alloc (pool, p - c + 1);
func->args = NULL;
g_strlcpy (func->name, c, (p - c + 1));