Package: spfquery
Version: 1.2.5.dfsg-2
Severity: normal
Tags: patch upstream
spfquery segfaults when passing it a malformed -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.
Note: This report has already been sent to upstream.
-- 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)
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",