diff options
| author | Sam Varshavchik | 2015-06-27 13:26:50 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2015-06-27 13:26:50 -0400 |
| commit | 174541a2e670c0ee70fd2fb3116209f96ecc173e (patch) | |
| tree | ab31a41aca11ccad42c120ff0abe7e32fd29762f | |
| parent | 67b9324b4d78f3fc5cb92e0b024c1c5cfca5a39b (diff) | |
| download | courier-libs-174541a2e670c0ee70fd2fb3116209f96ecc173e.tar.bz2 | |
Fix some bounds checking issues. Added ESMTP_PREFER_IPV6_MX setting.
| -rw-r--r-- | imap/ChangeLog | 7 | ||||
| -rw-r--r-- | imap/configure.ac | 2 | ||||
| -rw-r--r-- | imap/mailboxlist.c | 4 | ||||
| -rw-r--r-- | maildrop/configure.ac | 2 | ||||
| -rw-r--r-- | maildrop/mailbot.c | 4 | ||||
| -rw-r--r-- | rfc1035/rfc1035mxlist.c | 36 | ||||
| -rw-r--r-- | rfc1035/rfc1035search.c | 2 | ||||
| -rw-r--r-- | sqwebmail/ChangeLog | 2 | ||||
| -rw-r--r-- | sqwebmail/configure.ac | 2 |
9 files changed, 40 insertions, 21 deletions
diff --git a/imap/ChangeLog b/imap/ChangeLog index 5490efc..a2eefaf 100644 --- a/imap/ChangeLog +++ b/imap/ChangeLog @@ -1,3 +1,10 @@ +4.16.2 + +2015-06-27 Sam Varshavchik <mrsam@courier-mta.com> + + * imap/mailboxlist.c (match_mailbox_prep): Use strncmp instead of + memcmp, to pacify overzealous static analysis checkers. + 2015-05-22 Sam Varshavchik <mrsam@courier-mta.com> * Drop SSLv3 from TLS_CIPHER_LIST. diff --git a/imap/configure.ac b/imap/configure.ac index c912586..e399fb9 100644 --- a/imap/configure.ac +++ b/imap/configure.ac @@ -4,7 +4,7 @@ dnl dnl Copyright 1998 - 2015 Double Precision, Inc. See COPYING for dnl distribution information. -AC_INIT(courier-imap, 4.16.1, [courier-users@lists.sourceforge.net]) +AC_INIT(courier-imap, 4.16.2, [courier-users@lists.sourceforge.net]) >confdefs.h # Kill PACKAGE_ macros diff --git a/imap/mailboxlist.c b/imap/mailboxlist.c index 9bcfd7c..02f36b4 100644 --- a/imap/mailboxlist.c +++ b/imap/mailboxlist.c @@ -965,7 +965,7 @@ int callback_rc=0; if (isnullname) found_hier=mb_flags; - else + else { strcat(strcat(strcpy(hiersepbuf, "\""), hierchs), "\""); @@ -1018,7 +1018,7 @@ static void match_mailbox_prep(char *name) /* ... except that "shared" should be lowercase ... */ - if (memcmp(name, "SHARED", 6) == 0) + if (strncmp(name, "SHARED", 6) == 0) memcpy(name, "shared", 6); } diff --git a/maildrop/configure.ac b/maildrop/configure.ac index 692f56c..f6f5b4f 100644 --- a/maildrop/configure.ac +++ b/maildrop/configure.ac @@ -2,7 +2,7 @@ dnl dnl Copyright 1998 - 2015 Double Precision, Inc. See COPYING for dnl distribution information. -AC_INIT(maildrop, 2.8.2, [courier-users@lists.sourceforge.net]) +AC_INIT(maildrop, 2.8.3, [courier-users@lists.sourceforge.net]) >confdefs.h # Kill PACKAGE_ macros diff --git a/maildrop/mailbot.c b/maildrop/mailbot.c index f49bbd9..8dfe551 100644 --- a/maildrop/mailbot.c +++ b/maildrop/mailbot.c @@ -1,5 +1,5 @@ /* -** Copyright 2001-2014 Double Precision, Inc. +** Copyright 2001-2015 Double Precision, Inc. ** See COPYING for distribution information. */ @@ -977,7 +977,7 @@ int main(int argc, char **argv) const char **strp; replyinfo.info.feedbackheaders= - strp=malloc(sizeof(char *) * 2 * fb_cnt+1); + strp=malloc(sizeof(char *) * ( 2 * fb_cnt+1 )); for (i=0, p=fb_list; p; p=p->next) { diff --git a/rfc1035/rfc1035mxlist.c b/rfc1035/rfc1035mxlist.c index 527aab4..2608a02 100644 --- a/rfc1035/rfc1035mxlist.c +++ b/rfc1035/rfc1035mxlist.c @@ -90,12 +90,15 @@ static int add_arecords(struct rfc1035_res *res, struct rfc1035_mxlist **list, char *mxname, int port, int opts) { #if RFC1035_IPV6 -struct in6_addr in; + struct in6_addr in; + int first_a=RFC1035_TYPE_A; + int second_a=RFC1035_TYPE_AAAA; + const char *prefer_ipv6=getenv("ESMTP_PREFER_IPV6_MX"); #else -struct in_addr in; + struct in_addr in; #endif -int found=0; -int rc; + int found=0; + int rc; if (rfc1035_aton(mxname, &in) == 0) { /* Broken MX record */ @@ -123,29 +126,36 @@ records, then query for A records. Query for AAAA records only if A records weren't found. */ + if (prefer_ipv6 && *prefer_ipv6 && *prefer_ipv6 != '0') + { + first_a=RFC1035_TYPE_AAAA; + second_a=RFC1035_TYPE_A; + } + if (mxreply && !(opts & RFC1035_MX_QUERYALL)) { if ((rc=harvest_records(res, list, mxreply, mxpreference, - mxname, RFC1035_TYPE_AAAA, &found, 0, port)) - != RFC1035_MX_OK) + mxname, second_a, &found, HARVEST_NODUPE, + port)) + != RFC1035_MX_OK) return (rc); if ((rc=harvest_records(res, list, mxreply, mxpreference, - mxname, RFC1035_TYPE_A, &found, HARVEST_NODUPE, - port)) - != RFC1035_MX_OK) + mxname, first_a, &found, 0, port)) + != RFC1035_MX_OK) return (rc); + if (found) return (RFC1035_MX_OK); } if ((rc=harvest_records(res, list, mxreply, mxpreference, mxname, - RFC1035_TYPE_AAAA, &found, HARVEST_AUTOQUERY, port)) - != RFC1035_MX_OK) + second_a, &found, HARVEST_AUTOQUERY|HARVEST_NODUPE, port)) + != RFC1035_MX_OK) return (rc); if ((rc=harvest_records(res, list, mxreply, mxpreference, mxname, - RFC1035_TYPE_A, &found, HARVEST_AUTOQUERY|HARVEST_NODUPE, port)) - != RFC1035_MX_OK) + first_a, &found, HARVEST_AUTOQUERY, port)) + != RFC1035_MX_OK) return (rc); if (found) return (RFC1035_MX_OK); diff --git a/rfc1035/rfc1035search.c b/rfc1035/rfc1035search.c index 8e69ad4..019f521 100644 --- a/rfc1035/rfc1035search.c +++ b/rfc1035/rfc1035search.c @@ -154,7 +154,7 @@ int recursion_count=10; namebuf, qtype, qclass)) == 0) return (-1); - if (x_flags && RFC1035_X_RANDOMIZE && + if ((x_flags & RFC1035_X_RANDOMIZE) && (*ptr)->rcode == RFC1035_RCODE_NOERROR) rfc1035_rr_rand(*ptr); diff --git a/sqwebmail/ChangeLog b/sqwebmail/ChangeLog index d646e4d..dc9e370 100644 --- a/sqwebmail/ChangeLog +++ b/sqwebmail/ChangeLog @@ -1,3 +1,5 @@ +5.8.3 + 2015-06-09 Sam Varshavchik <mrsam@courier-mta.com> * AUTH_MKHOMEDIR_SKEL setting: autocreate home directory. diff --git a/sqwebmail/configure.ac b/sqwebmail/configure.ac index 25386bf..dd549c6 100644 --- a/sqwebmail/configure.ac +++ b/sqwebmail/configure.ac @@ -2,7 +2,7 @@ dnl dnl Copyright 1998 - 2015 Double Precision, Inc. See COPYING for dnl distribution information. -AC_INIT(sqwebmail, 5.8.2, [courier-sqwebmail@lists.sourceforge.net]) +AC_INIT(sqwebmail, 5.8.3, [courier-sqwebmail@lists.sourceforge.net]) >confdefs.h # Kill PACKAGE_ macros |
