Package: spfquery Version: 1.2.5.dfsg-2 Severity: normal Tags: patch Hi!
spfquery segfaults when passing it a -guess argument: $ spfquery -ip 1.2.3.4 -sender [EMAIL PROTECTED] -helo foo -guess blah This is caused by spf_response_2mx being a null pointer in APPEND_RESULT(SPF_response_result(spf_response_2mx)); I *think* that usage of this variable is all wrong in this routine, since we're checking for fallback spf record not 2nd rcpt mx. See attached patch for a proposed fix. -- System Information: Debian Release: 4.0 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.18-4-amd64 Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8) Versions of packages spfquery depends on: ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries ii libspf2-2 1.2.5.dfsg-2 library for validating mail sender spfquery recommends no packages. -- no debconf information
diff -ur libspf2-1.2.5.dfsg.old/src/spfquery/spfquery.c libspf2-1.2.5.dfsg/src/spfquery/spfquery.c --- libspf2-1.2.5.dfsg.old/src/spfquery/spfquery.c 2005-02-22 03:36:55.000000000 +0100 +++ libspf2-1.2.5.dfsg/src/spfquery/spfquery.c 2007-06-24 13:17:34.000000000 +0200 @@ -341,6 +341,7 @@ SPF_request_t *spf_request = NULL; SPF_response_t *spf_response = NULL; SPF_response_t *spf_response_2mx = NULL; + SPF_response_t *spf_response_fallback = NULL; SPF_errcode_t err; char *opt_file = NULL; @@ -670,20 +671,20 @@ /* We now have an option to call SPF_request_query_fallback */ if (opts->fallback) { err = SPF_request_query_fallback(spf_request, - &spf_response, opts->fallback); + &spf_response_fallback, opts->fallback); if (opts->debug) - response_print("fallback query", spf_response_2mx); + response_print("fallback query", spf_response_fallback); if (err) { response_print_errors("Failed to query best-guess", - spf_response, err); + spf_response_fallback, err); CONTINUE_ERROR; } /* append the result */ - APPEND_RESULT(SPF_response_result(spf_response_2mx)); + APPEND_RESULT(SPF_response_result(spf_response_fallback)); spf_response = SPF_response_combine(spf_response, - spf_response_2mx); + spf_response_fallback); } printf( "%s\n%s\n%s\n%s\n",