diff options
author | cebka@lenovo-laptop <cebka@lenovo-laptop> | 2010-03-15 20:54:39 +0300 |
---|---|---|
committer | cebka@lenovo-laptop <cebka@lenovo-laptop> | 2010-03-15 20:54:39 +0300 |
commit | 21dc91eac153c2dade3c393d0e6f6c4e66d51a94 (patch) | |
tree | af35c7d36f5546a7c1ec835c6e4f99aa9a460ea4 /src/spf.c | |
parent | 9cb57d681480ca0a2b7b709ba2253b04cb5a6f72 (diff) | |
download | rspamd-21dc91eac153c2dade3c393d0e6f6c4e66d51a94.tar.gz rspamd-21dc91eac153c2dade3c393d0e6f6c4e66d51a94.zip |
* Fix another spf core dump while parsing 'include' items
Diffstat (limited to 'src/spf.c')
-rw-r--r-- | src/spf.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -314,6 +314,11 @@ spf_record_dns_callback (int result, char type, int count, int ttl, void *addres cb->rec->addrs->prev = elt->prev; } + /* Shift temporary list */ + while (tmp->prev) { + tmp = tmp->prev; + } + cb->rec->addrs = tmp; g_list_free1 (elt); } @@ -370,8 +375,8 @@ spf_record_dns_callback (int result, char type, int count, int ttl, void *addres cb->rec->task->save.saved--; if (cb->rec->task->save.saved == 0 && cb->rec->callback) { + cb->rec->callback (cb->rec, cb->rec->task); if (cb->rec->addrs) { - cb->rec->callback (cb->rec, cb->rec->task); g_list_free (cb->rec->addrs); cb->rec->addrs = NULL; } |