]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Avoid reusing g_error (Fixes #1262)
authorAndrew Lewis <nerf@judo.za.org>
Wed, 21 Dec 2016 13:49:57 +0000 (15:49 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Tue, 3 Jan 2017 13:38:02 +0000 (15:38 +0200)
 Reported by: @jhejl

src/libserver/dkim.c

index fbba759e0c4cedca71ac0c1e110ab371c6bfec14..b815c7c81d3aad4fe246be56d387b41939cff8e0 100644 (file)
@@ -1130,6 +1130,11 @@ rspamd_dkim_dns_cb (struct rdns_reply *reply, gpointer arg)
                LL_FOREACH (reply->entries, elt)
                {
                        if (elt->type == RDNS_REQUEST_TXT) {
+                               if (err != NULL) {
+                                       /* Free error as it is insignificant */
+                                       g_error_free (err);
+                                       err = NULL;
+                               }
                                key = rspamd_dkim_parse_key (cbdata->ctx, elt->content.txt.data,
                                                &keylen,
                                                &err);
@@ -1139,11 +1144,6 @@ rspamd_dkim_dns_cb (struct rdns_reply *reply, gpointer arg)
                                }
                        }
                }
-               if (key != NULL && err != NULL) {
-                       /* Free error as it is insignificant */
-                       g_error_free (err);
-                       err = NULL;
-               }
                cbdata->handler (key, keylen, cbdata->ctx, cbdata->ud, err);
        }
 }