Hello, Here's an update of ports/mail/libspf2 to version 1.2.8, that fixes a vulnerability in the way it used to parse TXT records:
http://www.doxpara.com/?page_id=1256 The port update also removes a lot of patches that have been merged upstream. Best regards, -- Frank Denis - j [at] pureftpd.org - http://00f.net - http://www.cotery.com
diff -urN mail/libspf2/Makefile mail/libspf2.new/Makefile --- mail/libspf2/Makefile Wed Jan 30 16:58:49 2008 +++ mail/libspf2.new/Makefile Thu Oct 23 09:18:48 2008 @@ -2,7 +2,7 @@ COMMENT= SPF library -DISTNAME= libspf2-1.2.5 +DISTNAME= libspf2-1.2.8 CATEGORIES= mail HOMEPAGE= http://www.libspf2.org/ @@ -17,7 +17,7 @@ PERMIT_DISTFILES_FTP= Yes WANTLIB= c pthread -SHARED_LIBS+= spf2 2.0 +SHARED_LIBS+= spf2 3.0 CONFIGURE_STYLE= gnu diff -urN mail/libspf2/distinfo mail/libspf2.new/distinfo --- mail/libspf2/distinfo Wed Jan 30 16:58:49 2008 +++ mail/libspf2.new/distinfo Thu Oct 23 08:55:54 2008 @@ -1,5 +1,5 @@ -MD5 (libspf2-1.2.5.tar.gz) = Bu1qOwtUyFkGeTFa4tKK2Q== -RMD160 (libspf2-1.2.5.tar.gz) = f1MAVwlVHf6KHbKMXIGVyv9kt9o= -SHA1 (libspf2-1.2.5.tar.gz) = jWoi2niwVlZEGYUrUWEJxmPiwXc= -SHA256 (libspf2-1.2.5.tar.gz) = h5QQ+Hq0/9V1sdgUkWfebV7udRGZ3rwDnvzBVYx9Dss= -SIZE (libspf2-1.2.5.tar.gz) = 517945 +MD5 (libspf2-1.2.8.tar.gz) = gk1iqD52EI+OIaOeGuKtYg== +RMD160 (libspf2-1.2.8.tar.gz) = DwWSL51b14eslWRwdf+TpbapmHQ= +SHA1 (libspf2-1.2.8.tar.gz) = FxgMiLPbrZjMItgOb1y1RBtfJb0= +SHA256 (libspf2-1.2.8.tar.gz) = OxzGyJFFG5ewlLPjtANIqVIEik0nyhbA5Q0PtTk44H8= +SIZE (libspf2-1.2.8.tar.gz) = 575270 diff -urN mail/libspf2/patches/patch-configure mail/libspf2.new/patches/patch-configure --- mail/libspf2/patches/patch-configure Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-configure Thu Jan 1 01:00:00 1970 @@ -1,25 +0,0 @@ -$OpenBSD: patch-configure,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- configure.orig Wed Feb 23 21:14:51 2005 -+++ configure Thu Jan 24 23:20:37 2008 -@@ -1945,7 +1945,7 @@ major=`echo $PACKAGE_VERSION | sed 's/^\([0-9]*\)\.[0- - minor=`echo $PACKAGE_VERSION | sed 's/^[0-9]*\.\([0-9]*\)\.[0-9]*/\1/'` - patch=`echo $PACKAGE_VERSION | sed 's/^[0-9]*\.[0-9]*\.\([0-9]*\)/\1/'` - --cat >src/libspf2/spf_lib_version.h <<_EOF_VERSION -+cat >src/include/spf_lib_version.h <<_EOF_VERSION - #ifndef INC_SPF_VERSION - #define INC_SPF_VERSION - -@@ -23661,12 +23661,6 @@ cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ - -- #ifdef HAVE_SYS_SOCKET_H -- # include <sys/socket.h> /* inet_ functions / structs */ -- #endif -- #ifdef HAVE_NETINET_IN_H -- # include <netinet/in.h> /* inet_ functions / structs */ -- #endif - #ifdef HAVE_ARPA_NAMESER_H - # include <arpa/nameser.h> /* DNS HEADER struct */ - #endif diff -urN mail/libspf2/patches/patch-src_Makefile_in mail/libspf2.new/patches/patch-src_Makefile_in --- mail/libspf2/patches/patch-src_Makefile_in Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_Makefile_in Thu Oct 23 09:09:35 2008 @@ -1,12 +1,12 @@ -$OpenBSD: patch-src_Makefile_in,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/Makefile.in.orig Wed Dec 12 11:19:42 2007 -+++ src/Makefile.in Wed Dec 12 11:19:08 2007 -@@ -108,7 +108,7 @@ RANLIB = @RANLIB@ +$OpenBSD$ +--- src/Makefile.in.orig Thu Oct 16 00:39:02 2008 ++++ src/Makefile.in Thu Oct 23 09:02:08 2008 +@@ -117,7 +117,7 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SUBDIRS = include libreplace libspf2 spfquery spftest spfd spf_example +SUBDIRS = include libreplace libspf2 spfquery spftest spfd VERSION = @VERSION@ - ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ + ac_ct_CXX = @ac_ct_CXX@ diff -urN mail/libspf2/patches/patch-src_include_spf_h mail/libspf2.new/patches/patch-src_include_spf_h --- mail/libspf2/patches/patch-src_include_spf_h Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_include_spf_h Thu Jan 1 01:00:00 1970 @@ -1,14 +0,0 @@ -$OpenBSD: patch-src_include_spf_h,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/include/spf.h.orig Wed Feb 16 19:56:55 2005 -+++ src/include/spf.h Thu Jan 24 21:59:38 2008 -@@ -52,8 +52,8 @@ - - /* FYI only -- defaults can't be changed without recompiling the library */ - #define SPF_DEFAULT_MAX_DNS_MECH 10 /* DoS limit on SPF mechanisms */ --#define SPF_DEFAULT_MAX_DNS_PTR 5 /* DoS limit on PTR records */ --#define SPF_DEFAULT_MAX_DNS_MX 5 /* DoS limit on MX records */ -+#define SPF_DEFAULT_MAX_DNS_PTR 10 /* DoS limit on PTR records */ -+#define SPF_DEFAULT_MAX_DNS_MX 10 /* DoS limit on MX records */ - #define SPF_DEFAULT_SANITIZE 1 - #define SPF_DEFAULT_WHITELIST "include:spf.trusted-forwarder.org" - #define SPF_EXP_MOD_NAME "exp-text" diff -urN mail/libspf2/patches/patch-src_include_spf_internal_h mail/libspf2.new/patches/patch-src_include_spf_internal_h --- mail/libspf2/patches/patch-src_include_spf_internal_h Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_include_spf_internal_h Thu Jan 1 01:00:00 1970 @@ -1,28 +0,0 @@ -$OpenBSD: patch-src_include_spf_internal_h,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/include/spf_internal.h.orig Wed Feb 23 23:10:49 2005 -+++ src/include/spf_internal.h Thu Jan 24 23:03:04 2008 -@@ -57,13 +57,13 @@ - /* It is a bad idea to change this for the same reasons as mentioned - * above for SPF_MAX_DNS_MECH - */ --#define SPF_MAX_DNS_PTR 5 -+#define SPF_MAX_DNS_PTR 10 - #endif - #ifndef SPF_MAX_DNS_MX - /* It is a bad idea to change this for the same reasons as mentioned - * above for SPF_MAX_DNS_MECH - */ --#define SPF_MAX_DNS_MX 5 -+#define SPF_MAX_DNS_MX 10 - #endif - - #if 1 -@@ -71,7 +71,7 @@ - static inline size_t _align_sz(size_t s) - { return (s + (_ALIGN_SZ - 1 - (((s - 1) & (_ALIGN_SZ - 1))))); } - static inline char * _align_ptr(char *s) -- { return (s + (_ALIGN_SZ - 1 - ((((unsigned int)s - 1) & (_ALIGN_SZ - 1))))); } -+ { return (s + (_ALIGN_SZ - 1 - ((((size_t)s - 1) & (_ALIGN_SZ - 1))))); } - #else - static inline size_t _align_sz(size_t s) { return s; } - static inline char * _align_ptr(char *s) { return s; } diff -urN mail/libspf2/patches/patch-src_include_spf_record_h mail/libspf2.new/patches/patch-src_include_spf_record_h --- mail/libspf2/patches/patch-src_include_spf_record_h Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_include_spf_record_h Thu Jan 1 01:00:00 1970 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_include_spf_record_h,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/include/spf_record.h.orig Mon Feb 21 21:40:01 2005 -+++ src/include/spf_record.h Thu Jan 24 21:54:02 2008 -@@ -224,7 +224,7 @@ struct SPF_record_struct - - struct SPF_macro_struct - { -- unsigned int macro_len; /* bytes of data */ -+ size_t macro_len; /* bytes of data */ - /* data: (SPF_data_t[] = char[macro_len]) follows */ - }; - diff -urN mail/libspf2/patches/patch-src_include_spf_server_h mail/libspf2.new/patches/patch-src_include_spf_server_h --- mail/libspf2/patches/patch-src_include_spf_server_h Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_include_spf_server_h Thu Jan 1 01:00:00 1970 @@ -1,27 +0,0 @@ -$OpenBSD: patch-src_include_spf_server_h,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/include/spf_server.h.orig Wed Sep 29 06:33:09 2004 -+++ src/include/spf_server.h Thu Jan 24 23:15:17 2008 -@@ -20,7 +20,6 @@ typedef struct SPF_server_struct SPF_server_t; - - #include "spf_record.h" - #include "spf_dns.h" --#include "spf_dns_internal.h" - - #ifndef SPF_MAX_DNS_MECH - /* It is a bad idea to change this for two reasons. -@@ -44,13 +43,13 @@ typedef struct SPF_server_struct SPF_server_t; - /* It is a bad idea to change this for the same reasons as mentioned - * above for SPF_MAX_DNS_MECH - */ --#define SPF_MAX_DNS_PTR 5 -+#define SPF_MAX_DNS_PTR 10 - #endif - #ifndef SPF_MAX_DNS_MX - /* It is a bad idea to change this for the same reasons as mentioned - * above for SPF_MAX_DNS_MECH - */ --#define SPF_MAX_DNS_MX 5 -+#define SPF_MAX_DNS_MX 10 - #endif - - struct SPF_server_struct { diff -urN mail/libspf2/patches/patch-src_libreplace___ns_initparse_c mail/libspf2.new/patches/patch-src_libreplace___ns_initparse_c --- mail/libspf2/patches/patch-src_libreplace___ns_initparse_c Thu Jan 1 01:00:00 1970 +++ mail/libspf2.new/patches/patch-src_libreplace___ns_initparse_c Thu Oct 23 09:32:43 2008 @@ -0,0 +1,12 @@ +$OpenBSD$ +--- src/libreplace/__ns_initparse.c.orig Thu Oct 23 09:32:24 2008 ++++ src/libreplace/__ns_initparse.c Thu Oct 23 09:32:36 2008 +@@ -30,7 +30,7 @@ static const char rcsid[] = "$Id: ns_parse.c,v 1.3.2.1 + #include "arpa_nameser.h" + + #include <errno.h> +-/* #include <resolv.h> */ ++#include <resolv.h> + #ifdef HAVE_STRING_H + # include <string.h> /* strstr / strdup */ + #else diff -urN mail/libspf2/patches/patch-src_libspf2_spf_compile_c mail/libspf2.new/patches/patch-src_libspf2_spf_compile_c --- mail/libspf2/patches/patch-src_libspf2_spf_compile_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_compile_c Thu Jan 1 01:00:00 1970 @@ -1,39 +0,0 @@ -$OpenBSD: patch-src_libspf2_spf_compile_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_compile.c.orig Wed Feb 23 22:40:31 2005 -+++ src/libspf2/spf_compile.c Thu Jan 24 23:09:37 2008 -@@ -98,7 +98,7 @@ SPF_mechtype_find(int mech_type) - } - - static void --SPF_c_ensure_capacity(void **datap, int *sizep, int length) -+SPF_c_ensure_capacity(void **datap, size_t *sizep, size_t length) - { - int size = *sizep; - if (length > size) -@@ -435,7 +435,7 @@ SPF_c_parse_var(SPF_response_t *spf_response, SPF_data - static SPF_errcode_t - SPF_c_parse_macro(SPF_server_t *spf_server, - SPF_response_t *spf_response, -- SPF_data_t *data, int *data_len, -+ SPF_data_t *data, size_t *data_len, - const char **startp, const char **endp, - size_t max_len, SPF_errcode_t big_err, - int is_mod) -@@ -470,7 +470,7 @@ SPF_c_parse_macro(SPF_server_t *spf_server, - len = end - p; - if (spf_server->debug) - SPF_debugf("Adding string literal (%d): '%*.*s'", -- len, len, len, p); -+ (int)len, (int)len, (int)len, p); - memcpy( dst, p, len ); - ds_len += len; - dst += len; -@@ -551,7 +551,7 @@ SPF_c_parse_macro(SPF_server_t *spf_server, - static SPF_errcode_t - SPF_c_parse_domainspec(SPF_server_t *spf_server, - SPF_response_t *spf_response, -- SPF_data_t *data, int *data_len, -+ SPF_data_t *data, size_t *data_len, - const char **startp, const char **endp, - size_t max_len, SPF_errcode_t big_err, - int cidr_ok, int is_mod) diff -urN mail/libspf2/patches/patch-src_libspf2_spf_dns_resolv_c mail/libspf2.new/patches/patch-src_libspf2_spf_dns_resolv_c --- mail/libspf2/patches/patch-src_libspf2_spf_dns_resolv_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_dns_resolv_c Thu Oct 23 09:31:07 2008 @@ -1,110 +1,29 @@ -$OpenBSD: patch-src_libspf2_spf_dns_resolv_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_dns_resolv.c.orig Fri Feb 18 21:38:12 2005 -+++ src/libspf2/spf_dns_resolv.c Thu Jan 24 23:14:02 2008 -@@ -71,13 +71,18 @@ typedef struct - # define SPF_h_errno h_errno - #endif +$OpenBSD$ +--- src/libspf2/spf_dns_resolv.c.orig Thu Oct 23 09:30:18 2008 ++++ src/libspf2/spf_dns_resolv.c Thu Oct 23 09:30:57 2008 +@@ -177,13 +177,13 @@ SPF_dns_resolv_debug(SPF_dns_server_t *spf_dns_server, -+#if HAVE_DECL_RES_NINIT - static pthread_once_t res_state_control = PTHREAD_ONCE_INIT; - static pthread_key_t res_state_key; + case ns_t_txt: + if (rdlen < 1) { +- SPF_debugf("TXT: rdlen too short: %lu", (unsigned long)rdlen); ++ SPF_debugf("TXT: rdlen too short: %zu", rdlen); + break; + } + /* XXX I think this is wrong/unsafe. Shevek. */ + /* XXX doesn't parse the different TXT "sections" */ +- SPF_debugf("TXT: (%d) \"%.*s\"", +- rdlen, rdlen - 1, rdata + 1); ++ SPF_debugf("TXT: (%zu) \"%.*s\"", ++ rdlen, (int) rdlen - 1, rdata + 1); + break; - static void - SPF_dns_resolv_thread_term(void *arg) - { -+#ifdef res_ndestroy -+ res_ndestroy( (struct __res_state *)arg ); -+#else - res_nclose( (struct __res_state *)arg ); -+#endif - free(arg); - } + case ns_t_ptr: +@@ -406,7 +406,7 @@ SPF_dns_resolv_lookup(SPF_dns_server_t *spf_dns_server -@@ -86,6 +91,7 @@ SPF_dns_resolv_init_key() - { - pthread_key_create(&res_state_key, SPF_dns_resolv_thread_term); - } -+#endif + rdlen = ns_rr_rdlen(rr); + if (spf_dns_server->debug > 1) +- SPF_debugf("name: %s type: %d class: %d ttl: %d rdlen: %d", ++ SPF_debugf("name: %s type: %d class: %d ttl: %d rdlen: %zu", + ns_rr_name(rr), ns_rr_type(rr), ns_rr_class(rr), + ns_rr_ttl(rr), rdlen); - - #if 0 -@@ -130,8 +136,10 @@ SPF_dns_resolv_lookup(SPF_dns_server_t *spf_dns_server - int rdlen; - const u_char *rdata, *rdata_end; - -+#if HAVE_DECL_RES_NINIT - void *res_spec; - struct __res_state *res_state; -+#endif - - SPF_ASSERT_NOTNULL(spf_dns_server); - -@@ -140,10 +148,15 @@ SPF_dns_resolv_lookup(SPF_dns_server_t *spf_dns_server - SPF_ASSERT_NOTNULL(spfhook); - #endif - -+#if HAVE_DECL_RES_NINIT - res_spec = pthread_getspecific(res_state_key); - if (res_spec == NULL) { - res_state = (struct __res_state *) - malloc(sizeof(struct __res_state)); -+ if (res_state == NULL) { -+ SPF_error("Failed to call malloc()"); -+ } -+ memset(res_state, 0, sizeof(*res_state)); - if (res_ninit(res_state) != 0) { - SPF_error("Failed to call res_ninit()"); - } -@@ -152,6 +165,11 @@ SPF_dns_resolv_lookup(SPF_dns_server_t *spf_dns_server - else { - res_state = (struct __res_state *)res_spec; - } -+#else -+ if ((_res.options & RES_INIT) == 0 && res_init() != 0) { -+ SPF_error("Failed to call res_init()"); -+ } -+#endif - - /* - * try resolving the name -@@ -393,7 +411,7 @@ SPF_dns_resolv_lookup(SPF_dns_server_t *spf_dns_server - if ( SPF_dns_rr_buf_realloc( spfrr, cnt, rdlen ) != SPF_E_SUCCESS ) - return spfrr; - -- dst = spfrr->rr[cnt]->txt; -+ dst = (u_char *)(spfrr->rr[cnt]->txt); - len = 0; - src = (u_char *)rdata; - while ( rdlen > 0 ) -@@ -486,7 +504,9 @@ SPF_dns_resolv_new(SPF_dns_server_t *layer_below, - SPF_dns_resolv_config_t *spfhook; - #endif - -+#if HAVE_DECL_RES_NINIT - pthread_once(&res_state_control, SPF_dns_resolv_init_key); -+#endif - - spf_dns_server = malloc(sizeof(SPF_dns_server_t)); - if ( spf_dns_server == NULL ) -@@ -517,19 +537,19 @@ SPF_dns_resolv_new(SPF_dns_server_t *layer_below, - spfhook = SPF_voidp2spfhook( spf_dns_server->hook ); - #endif - --#if HAVE_DECL_RES_NINIT - #if 0 -+#if HAVE_DECL_RES_NINIT - if ( res_ninit( &spfhook->res_state ) != 0 ) { - free(spfhook); - free(spf_dns_server); - return NULL; - } --#endif - #else - if ( res_init() != 0 ) { - free( spf_dns_server ); - return NULL; - } -+#endif - #endif - - return spf_dns_server; diff -urN mail/libspf2/patches/patch-src_libspf2_spf_dns_rr_c mail/libspf2.new/patches/patch-src_libspf2_spf_dns_rr_c --- mail/libspf2/patches/patch-src_libspf2_spf_dns_rr_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_dns_rr_c Thu Jan 1 01:00:00 1970 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libspf2_spf_dns_rr_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_dns_rr.c.orig Mon Feb 21 20:42:34 2005 -+++ src/libspf2/spf_dns_rr.c Wed Dec 12 11:12:05 2007 -@@ -45,7 +45,7 @@ SPF_dns_rr_new_nxdomain(SPF_dns_server_t *spf_dns_serv - const char *domain) - { - return SPF_dns_rr_new_init(spf_dns_server, -- domain, ns_t_any, 0, NXDOMAIN); -+ domain, ns_t_any, 0, HOST_NOT_FOUND); - } - - SPF_dns_rr_t * diff -urN mail/libspf2/patches/patch-src_libspf2_spf_id2str_c mail/libspf2.new/patches/patch-src_libspf2_spf_id2str_c --- mail/libspf2/patches/patch-src_libspf2_spf_id2str_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_id2str_c Thu Jan 1 01:00:00 1970 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_libspf2_spf_id2str_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_id2str.c.orig Wed Feb 23 22:33:16 2005 -+++ src/libspf2/spf_id2str.c Thu Jan 24 21:55:04 2008 -@@ -309,7 +309,7 @@ SPF_record_stringify( SPF_record_t *spf_record, char * - p_end = *bufp + *buflenp; - - if (debug) -- SPF_debugf("stringify: Buffer length is %d\n", *buflenp); -+ SPF_debugf("stringify: Buffer length is %u\n", (unsigned int)*buflenp); - - - /* diff -urN mail/libspf2/patches/patch-src_libspf2_spf_interpret_c mail/libspf2.new/patches/patch-src_libspf2_spf_interpret_c --- mail/libspf2/patches/patch-src_libspf2_spf_interpret_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_interpret_c Thu Jan 1 01:00:00 1970 @@ -1,29 +0,0 @@ -$OpenBSD: patch-src_libspf2_spf_interpret_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_interpret.c.orig Mon Feb 21 22:41:27 2005 -+++ src/libspf2/spf_interpret.c Thu Jan 24 23:07:13 2008 -@@ -49,8 +49,8 @@ SPF_i_set_smtp_comment(SPF_response_t *spf_response) - SPF_record_t *spf_record; - SPF_errcode_t err; - char *buf; -- int buflen; -- int len; -+ size_t buflen; -+ size_t len; - - SPF_ASSERT_NOTNULL(spf_response); - spf_request = spf_response->spf_request; -@@ -214,9 +214,13 @@ SPF_i_set_header_comment(SPF_response_t *spf_response) - break; - - case SPF_RESULT_NEUTRAL: -- case SPF_RESULT_NONE: - snprintf( p, p_end - p, "%s is neither permitted nor denied by %s", - ip, spf_source ); -+ break; -+ -+ case SPF_RESULT_NONE: -+ snprintf( p, p_end - p, "%s does not provide an SPF record", -+ spf_source ); - break; - - case SPF_RESULT_TEMPERROR: diff -urN mail/libspf2/patches/patch-src_libspf2_spf_print_c mail/libspf2.new/patches/patch-src_libspf2_spf_print_c --- mail/libspf2/patches/patch-src_libspf2_spf_print_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_print_c Thu Jan 1 01:00:00 1970 @@ -1,32 +0,0 @@ -$OpenBSD: patch-src_libspf2_spf_print_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_print.c.orig Tue Aug 31 12:02:39 2004 -+++ src/libspf2/spf_print.c Thu Jan 24 21:55:04 2008 -@@ -54,12 +54,12 @@ SPF_record_print(SPF_record_t *spf_record) - return SPF_E_SUCCESS; - } - -- SPF_infof( "SPF header: version: %d mech %d/%d mod %d/%d len=%d", -+ SPF_infof( "SPF header: version: %d mech %d/%u mod %d/%u len=%u", - spf_record->version, -- spf_record->num_mech, spf_record->mech_len, -- spf_record->num_mod, spf_record->mod_len, -- sizeof(SPF_record_t) + spf_record->mech_len -- + spf_record->mod_len); -+ (int)spf_record->num_mech, (unsigned int)spf_record->mech_len, -+ (int)spf_record->num_mod, (unsigned int)spf_record->mod_len, -+ (unsigned int)(sizeof(SPF_record_t) + spf_record->mech_len -+ + spf_record->mod_len)); - - err = SPF_record_stringify(spf_record, &prt_buf, &prt_len); - if ( err == SPF_E_RESULT_UNKNOWN ) -@@ -81,7 +81,7 @@ SPF_record_print(SPF_record_t *spf_record) - void SPF_print_sizeof(void) - { - // SPF_infof( "sizeof(SPF_rec_header_t)=%u", sizeof(SPF_rec_header_t)); -- SPF_infof( "sizeof(SPF_mech_t)=%u", sizeof(SPF_mech_t)); -- SPF_infof( "sizeof(SPF_data_t)=%u", sizeof(SPF_data_t)); -- SPF_infof( "sizeof(SPF_mod_t)=%u", sizeof(SPF_mod_t)); -+ SPF_infof( "sizeof(SPF_mech_t)=%u", (unsigned int)sizeof(SPF_mech_t)); -+ SPF_infof( "sizeof(SPF_data_t)=%u", (unsigned int)sizeof(SPF_data_t)); -+ SPF_infof( "sizeof(SPF_mod_t)=%u", (unsigned int)sizeof(SPF_mod_t)); - } diff -urN mail/libspf2/patches/patch-src_libspf2_spf_request_c mail/libspf2.new/patches/patch-src_libspf2_spf_request_c --- mail/libspf2/patches/patch-src_libspf2_spf_request_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_request_c Thu Jan 1 01:00:00 1970 @@ -1,35 +0,0 @@ -$OpenBSD: patch-src_libspf2_spf_request_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_request.c.orig Mon Feb 21 21:38:57 2005 -+++ src/libspf2/spf_request.c Thu Jan 24 23:06:21 2008 -@@ -142,14 +142,19 @@ SPF_request_set_env_from(SPF_request_t *sr, const char - SPF_FREE(sr->env_from_lp); - SPF_FREE(sr->env_from_dp); - -+ if (*from == '\0' && sr->helo_dom != NULL) { -+ from = sr->helo_dom; -+ } - cp = strrchr(from, '@'); - if (cp && (cp != from)) { - sr->env_from = strdup(from); -- sr->env_from_lp = strdup(from); /* Too long, but simple */ -- sr->env_from_lp[(cp - from)] = '\0'; -+ *cp = '\0'; -+ sr->env_from_lp = strdup(from); - sr->env_from_dp = strdup(cp + 1); -+ *cp = '@'; - } - else { -+ if (cp == from) from++; /* "@domain.example" */ - len = sizeof("postmaster@") + strlen(from); - sr->env_from = malloc(len + 1); /* sizeof("") == 1? */ - sprintf(sr->env_from, "[EMAIL PROTECTED]", from); -@@ -306,6 +311,9 @@ SPF_request_query_rcptto(SPF_request_t *spf_request, - const char *rcpt_to_dom; - char *record; - size_t len; -+ -+ if ( (spf_request == NULL) || (rcpt_to == NULL) ) -+ return SPF_E_INVALID_OPT; - - SPF_ASSERT_NOTNULL(spf_request); - spf_server = spf_request->spf_server; diff -urN mail/libspf2/patches/patch-src_libspf2_spf_response_c mail/libspf2.new/patches/patch-src_libspf2_spf_response_c --- mail/libspf2/patches/patch-src_libspf2_spf_response_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_response_c Thu Jan 1 01:00:00 1970 @@ -1,13 +0,0 @@ -$OpenBSD: patch-src_libspf2_spf_response_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_response.c.orig Tue Oct 19 10:05:19 2004 -+++ src/libspf2/spf_response.c Wed Dec 12 11:12:05 2007 -@@ -132,6 +132,9 @@ SPF_response_combine(SPF_response_t *main, SPF_respons - SPF_result_t - SPF_response_result(SPF_response_t *rp) - { -+ if (rp == NULL) -+ return SPF_RESULT_NONE; -+ - return rp->result; - } - diff -urN mail/libspf2/patches/patch-src_libspf2_spf_result_c mail/libspf2.new/patches/patch-src_libspf2_spf_result_c --- mail/libspf2/patches/patch-src_libspf2_spf_result_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_libspf2_spf_result_c Thu Jan 1 01:00:00 1970 @@ -1,18 +0,0 @@ -$OpenBSD: patch-src_libspf2_spf_result_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/libspf2/spf_result.c.orig Tue Aug 10 09:04:02 2004 -+++ src/libspf2/spf_result.c Thu Jan 24 22:01:34 2008 -@@ -187,9 +187,13 @@ char *SPF_header_comment( SPF_config_t spfcid, SPF_out - break; - - case SPF_RESULT_NEUTRAL: -- case SPF_RESULT_NONE: - snprintf( p, p_end - p, "%s is neither permitted nor denied by %s", - ip, spf_source ); -+ break; -+ -+ case SPF_RESULT_NONE: -+ snprintf( p, p_end - p, "%s does not provide an SPF record", -+ spf_source ); - break; - - case SPF_RESULT_ERROR: diff -urN mail/libspf2/patches/patch-src_spf_example_spf_example_c mail/libspf2.new/patches/patch-src_spf_example_spf_example_c --- mail/libspf2/patches/patch-src_spf_example_spf_example_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_spf_example_spf_example_c Thu Jan 1 01:00:00 1970 @@ -1,70 +0,0 @@ -$OpenBSD: patch-src_spf_example_spf_example_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/spf_example/spf_example.c.orig Thu Feb 17 02:26:04 2005 -+++ src/spf_example/spf_example.c Fri Jun 1 21:33:16 2007 -@@ -90,17 +90,17 @@ static void usage() - "\n" - "Valid data options are:\n" - " -i <IP address> The IP address that is sending email\n" -- " -s <email address> The email address used as the\n" -- " envelope-from. If no username (local\n" -- " part) is given, 'postmaster' will be\n" -- " assumed.\n" -- " -r <email address> [optional] The email address used as\n" -- " the envelope-to email address, for\n" -- " secondary-MX checking.\n" -- " -h <domain name> The domain name given on the SMTP HELO\n" -- " command. This is only needed if the\n" -- " -sender option is not given.\n" -- " -d [debug level] debug level.\n" -+ " -s <email address> The email address used as the\n" -+ " envelope-from. If no username (local\n" -+ " part) is given, 'postmaster' will be\n" -+ " assumed.\n" -+ " -r <email address> [optional] The email address used as\n" -+ " the envelope-to email address, for\n" -+ " secondary-MX checking.\n" -+ " -h <domain name> The domain name given on the SMTP HELO\n" -+ " command. This is only needed if the\n" -+ " -sender option is not given.\n" -+ " -d [debug level] debug level.\n" - ); - } - -@@ -206,7 +206,7 @@ int main( int argc, char *argv[] ) - * destroyed when you are finished. - */ - -- spf_server = SPF_server_new(SPF_DNS_CACHE, 1); -+ spf_server = SPF_server_new(SPF_DNS_CACHE, opt_debug); - - if (spf_server == NULL) { - fprintf( stderr, "SPF_create_config failed.\n" ); -@@ -264,10 +264,24 @@ int main( int argc, char *argv[] ) - * message. - */ - -- if ( SPF_request_set_helo_dom( spf_request, opt_helo ) ) { -- printf( "Invalid HELO domain.\n" ); -- res = 255; -- goto error; -+ if (opt_helo == NULL) { -+ if (opt_sender != NULL) { -+ if (strstr(opt_sender, "@") != NULL) { -+ opt_helo = strdup(strstr(opt_sender, "@") + 1); -+ -+ if ( SPF_request_set_helo_dom( spf_request, opt_helo ) ) { -+ printf( "Invalid HELO domain.\n" ); -+ res = 255; -+ goto error; -+ } -+ } -+ } -+ } else { -+ if ( SPF_request_set_helo_dom( spf_request, opt_helo ) ) { -+ printf( "Invalid HELO domain.\n" ); -+ res = 255; -+ goto error; -+ } - } - - /* diff -urN mail/libspf2/patches/patch-src_spfd_Makefile_in mail/libspf2.new/patches/patch-src_spfd_Makefile_in --- mail/libspf2/patches/patch-src_spfd_Makefile_in Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_spfd_Makefile_in Thu Oct 23 09:09:35 2008 @@ -1,6 +1,6 @@ -$OpenBSD: patch-src_spfd_Makefile_in,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/spfd/Makefile.in.orig Wed Dec 12 11:21:56 2007 -+++ src/spfd/Makefile.in Wed Dec 12 17:42:52 2007 +$OpenBSD$ +--- src/spfd/Makefile.in.orig Thu Oct 16 00:39:03 2008 ++++ src/spfd/Makefile.in Thu Oct 23 09:02:26 2008 @@ -39,7 +39,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : diff -urN mail/libspf2/patches/patch-src_spfd_spfd_c mail/libspf2.new/patches/patch-src_spfd_spfd_c --- mail/libspf2/patches/patch-src_spfd_spfd_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_spfd_spfd_c Thu Jan 1 01:00:00 1970 @@ -1,21 +0,0 @@ -$OpenBSD: patch-src_spfd_spfd_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/spfd/spfd.c.orig Fri Feb 18 21:40:35 2005 -+++ src/spfd/spfd.c Thu Jan 24 23:01:02 2008 -@@ -168,7 +168,7 @@ struct _request_t { - struct sockaddr_in in; - struct sockaddr_un un; - } addr; -- int addrlen; -+ socklen_t addrlen; - char *data; - int datalen; - -@@ -640,7 +640,7 @@ daemon_bind_unix() - memset(&addr, 0, sizeof(addr)); - addr.sun_family = AF_UNIX; - strcpy(addr.sun_path, spfd_config.path); -- if (unlink(spfd_config.path < 0)) { -+ if (unlink(spfd_config.path) < 0) { - if (errno != ENOENT) { - perror("unlink"); - DIE("Failed to unlink socket"); diff -urN mail/libspf2/patches/patch-src_spfquery_Makefile_in mail/libspf2.new/patches/patch-src_spfquery_Makefile_in --- mail/libspf2/patches/patch-src_spfquery_Makefile_in Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_spfquery_Makefile_in Thu Oct 23 09:09:35 2008 @@ -1,6 +1,6 @@ -$OpenBSD: patch-src_spfquery_Makefile_in,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/spfquery/Makefile.in.orig Wed Dec 12 17:43:48 2007 -+++ src/spfquery/Makefile.in Wed Dec 12 17:43:57 2007 +$OpenBSD$ +--- src/spfquery/Makefile.in.orig Thu Oct 16 00:39:03 2008 ++++ src/spfquery/Makefile.in Thu Oct 23 09:02:26 2008 @@ -39,7 +39,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : diff -urN mail/libspf2/patches/patch-src_spfquery_spfquery_c mail/libspf2.new/patches/patch-src_spfquery_spfquery_c --- mail/libspf2/patches/patch-src_spfquery_spfquery_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_spfquery_spfquery_c Thu Jan 1 01:00:00 1970 @@ -1,22 +0,0 @@ -$OpenBSD: patch-src_spfquery_spfquery_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/spfquery/spfquery.c.orig Mon Feb 21 21:36:55 2005 -+++ src/spfquery/spfquery.c Thu Jan 24 22:58:47 2008 -@@ -261,7 +261,7 @@ static void - response_print_errors(const char *context, - SPF_response_t *spf_response, SPF_errcode_t err) - { -- SPF_error_t *spf_error;; -+ SPF_error_t *spf_error; - int i; - - printf("StartError\n"); -@@ -604,7 +604,8 @@ int main( int argc, char *argv[] ) - - spf_request = SPF_request_new(spf_server); - -- if (SPF_request_set_ipv4_str(spf_request, req->ip)) { -+ if (SPF_request_set_ipv4_str(spf_request, req->ip) -+ && SPF_request_set_ipv6_str(spf_request, req->ip)) { - printf( "Invalid IP address.\n" ); - CONTINUE_ERROR; - } diff -urN mail/libspf2/patches/patch-src_spftest_Makefile_in mail/libspf2.new/patches/patch-src_spftest_Makefile_in --- mail/libspf2/patches/patch-src_spftest_Makefile_in Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_spftest_Makefile_in Thu Oct 23 09:09:35 2008 @@ -1,6 +1,6 @@ -$OpenBSD: patch-src_spftest_Makefile_in,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/spftest/Makefile.in.orig Wed Dec 12 17:44:11 2007 -+++ src/spftest/Makefile.in Wed Dec 12 17:44:51 2007 +$OpenBSD$ +--- src/spftest/Makefile.in.orig Thu Oct 16 00:39:03 2008 ++++ src/spftest/Makefile.in Thu Oct 23 09:02:26 2008 @@ -39,7 +39,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : diff -urN mail/libspf2/patches/patch-src_spftest_spftest_c mail/libspf2.new/patches/patch-src_spftest_spftest_c --- mail/libspf2/patches/patch-src_spftest_spftest_c Wed Jan 30 16:58:50 2008 +++ mail/libspf2.new/patches/patch-src_spftest_spftest_c Thu Jan 1 01:00:00 1970 @@ -1,12 +0,0 @@ -$OpenBSD: patch-src_spftest_spftest_c,v 1.1.1.1 2008/01/30 15:58:50 okan Exp $ ---- src/spftest/spftest.c.orig Thu Dec 13 17:54:43 2007 -+++ src/spftest/spftest.c Thu Dec 13 17:54:53 2007 -@@ -97,7 +97,7 @@ main( int argc, char *argv[] ) - int major, minor, patch; - int i; - -- spf_server = SPF_server_new(SPF_DNS_CACHE, 2); -+ spf_server = SPF_server_new(SPF_DNS_CACHE, 0); - - if ( argc <= 1 ) { - usage(); diff -urN mail/libspf2/pkg/PLIST mail/libspf2.new/pkg/PLIST --- mail/libspf2/pkg/PLIST Wed Jan 30 16:58:49 2008 +++ mail/libspf2.new/pkg/PLIST Thu Oct 23 09:17:54 2008 @@ -18,6 +18,6 @@ lib/libspf2.a lib/libspf2.la libexec/libspf2/ -libexec/libspf2/spfd -libexec/libspf2/spfquery -libexec/libspf2/spftest [EMAIL PROTECTED] libexec/libspf2/spfd [EMAIL PROTECTED] libexec/libspf2/spfquery [EMAIL PROTECTED] libexec/libspf2/spftest