From: Vsevolod Stakhov Date: Thu, 6 Oct 2016 09:04:38 +0000 (+0100) Subject: [Fix] Fix parsing includes and redirects in SPF X-Git-Tag: 1.4.0~311 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dac58faa8449758b07b5f8c6705a1afa33ec3619;p=thirdparty%2Frspamd.git [Fix] Fix parsing includes and redirects in SPF Issue: #1009 Reported by: @moisseev --- diff --git a/src/libserver/spf.c b/src/libserver/spf.c index 2d6f864bae..5eb8dbd1cc 100644 --- a/src/libserver/spf.c +++ b/src/libserver/spf.c @@ -670,11 +670,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg) break; case SPF_RESOLVE_REDIRECT: if (elt_data->type == RDNS_REQUEST_TXT) { - if (spf_process_txt_record (rec, cb->resolved, reply)) { - cb->addr->flags |= RSPAMD_SPF_FLAG_RESOLVED; - } - else { - cb->addr->flags &= ~RSPAMD_SPF_FLAG_RESOLVED; + cb->addr->flags |= RSPAMD_SPF_FLAG_RESOLVED; + if (!spf_process_txt_record (rec, cb->resolved, reply)) { cb->addr->flags |= RSPAMD_SPF_FLAG_PERMFAIL; } } @@ -683,12 +680,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg) break; case SPF_RESOLVE_INCLUDE: if (elt_data->type == RDNS_REQUEST_TXT) { - if (spf_process_txt_record (rec, cb->resolved, reply)) { - cb->addr->flags |= RSPAMD_SPF_FLAG_RESOLVED; - } - else { - cb->addr->flags &= ~RSPAMD_SPF_FLAG_RESOLVED; - } + cb->addr->flags |= RSPAMD_SPF_FLAG_RESOLVED; + spf_process_txt_record (rec, cb->resolved, reply); } goto end;