From: Vsevolod Stakhov Date: Thu, 22 Jan 2015 21:58:59 +0000 (+0000) Subject: Ignore broken TXT records when parsing include. X-Git-Tag: 0.9.0~849 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=bb20f42a5e4f13faeb06aecba01d5142af937b0f;p=rspamd.git Ignore broken TXT records when parsing include. --- diff --git a/src/libserver/spf.c b/src/libserver/spf.c index 758df486b..a11d032a2 100644 --- a/src/libserver/spf.c +++ b/src/libserver/spf.c @@ -546,6 +546,7 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg) struct rdns_reply_entry *elt_data; GList *tmp = NULL; struct rspamd_task *task; + gboolean ret; task = cb->rec->task; @@ -634,16 +635,20 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg) tmp = cb->rec->addrs; cb->rec->addrs = NULL; cb->rec->in_include = TRUE; - start_spf_parse (cb->rec, begin, 0); + ret = start_spf_parse (cb->rec, begin, 0); cb->rec->in_include = FALSE; #ifdef SPF_DEBUG msg_info ("after include"); dump_spf_record (cb->rec->addrs); #endif - /* Insert new list */ - cb->addr->is_list = TRUE; - cb->addr->data.list = cb->rec->addrs; + + if (ret) { + /* Insert new list */ + cb->addr->is_list = TRUE; + cb->addr->data.list = cb->rec->addrs; + } + cb->rec->addrs = tmp; } break;