]> source.dussan.org Git - rspamd.git/commitdiff
Do not re-set GError
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 4 Dec 2015 16:58:14 +0000 (16:58 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 4 Dec 2015 16:58:14 +0000 (16:58 +0000)
src/libutil/expression.c

index 90be6ae3f4ba35750dd5db2e2e0fad560a4cc686..a58866b79f3467b13d2a94f98f3bccb588d319b8 100644 (file)
@@ -51,13 +51,14 @@ enum rspamd_expression_op {
        OP_CBRACE /* ) */
 };
 
-struct rspamd_expression_elt {
-       enum {
-               ELT_OP = 0,
-               ELT_ATOM,
-               ELT_LIMIT
-       } type;
+enum rspamd_expression_elt_type {
+       ELT_OP = 0,
+       ELT_ATOM,
+       ELT_LIMIT
+};
 
+struct rspamd_expression_elt {
+       enum rspamd_expression_elt_type type;
        union {
                rspamd_expression_atom_t *atom;
                enum rspamd_expression_op op;
@@ -602,10 +603,15 @@ rspamd_parse_expression (const gchar *line, gsize len,
                                        atom = subr->parse (p, end - p, pool, subr_data, err);
                                        if (atom == NULL || atom->len == 0) {
                                                /* We couldn't parse the atom, so go out */
-                                               g_set_error (err, rspamd_expr_quark (),
-                                                               500,
-                                                               "Cannot parse atom: callback function failed"
-                                                               " to parse '%.*s'", (int)(end - p), p);
+                                               if (err != NULL && *err == NULL) {
+                                                       g_set_error (err,
+                                                                       rspamd_expr_quark (),
+                                                                       500,
+                                                                       "Cannot parse atom: callback function failed"
+                                                                                       " to parse '%.*s'",
+                                                                       (int) (end - p),
+                                                                       p);
+                                               }
                                                goto err;
                                        }