- Upgrade to 6.5.1 * Drop two wolfSSL compile-time checks that were for older 6.4 or for future 7.0 releases and broke compilation with wolfSSL 5.7.4. Fixes https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282413#c4 * Use %p instead of non-portable %#p for one wolfSSL-related diagnostic message (FreeBSD defines %#p to be %p, on many other platforms it's undefined behavior). * Add regex_helper.c to list of files that contain translatable strings, which contains two strings we missed to translate. * Simplify EVP_MD_fetch API detection ("like OpenSSL 3" vs. "like OpenSSL 1") for version switch and base it on the claimed OpenSSL version of the crypto SSL, which works for LibreSSL (claims OpenSSL 2) and wolfSSL alike. * Several translations added - Rebased fetchmail-6.3.8-smtp_errors.patch - Rebased fetchmail-FAQ-list-gmail-options-including-oauthbearer-and-app.patch - Rebased fetchmail-add-contrib-fetchnmail-oauth2.py-token-acquisition-u.patch - Rebased fetchmail-add-imap-oauthbearer-support.patch - Rebased fetchmail-add-passwordfile-and-passwordfd-options.patch - Rebased fetchmail-add-query_to64_outsize-utility-function.patch - Rebased fetchmail-bump-max-passwordlen-to-1bytes.patch - Rebased fetchmail-give-each-ctl-it-s-own-copy-of-password.patch - Rebased fetchmail-increase-max-password-length-to-handle-oauth-tokens.patch - Rebased fetchmail-re-read-passwordfile-on-every-poll.patch - Rebased fetchmail-support-oauthbearer-xoauth2-with-pop3.patch - Rebased fetchmailconf-no-more-future.patch OBS-URL: https://build.opensuse.org/request/show/1227336 OBS-URL: https://build.opensuse.org/package/show/server:mail/fetchmail?expand=0&rev=159
46 lines
1.6 KiB
Diff
46 lines
1.6 KiB
Diff
From: Matthew Ogilvie <mmogilvi+fml@zoho.com>
|
|
Date: Fri, 9 Jun 2017 19:31:17 -0600
|
|
Subject: give each ctl it's own copy of password
|
|
Git-repo: https://gitlab.com/fetchmail/fetchmail.git
|
|
Git-commit: 469b0a212e7f047ab16ef46a9158df5fb373e8c2
|
|
|
|
pwdb_* and passwordfile options may free and re-allocate password
|
|
for each poll operation. Giving each context it's own copy of
|
|
the password should prevent accessing freed memory in another copy.
|
|
|
|
I haven't tested pwmd, but these seem like obvious fixes.
|
|
---
|
|
fetchmail.c | 12 ++++++++++--
|
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
Index: fetchmail-6.5.1/fetchmail.c
|
|
===================================================================
|
|
--- fetchmail-6.5.1.orig/fetchmail.c
|
|
+++ fetchmail-6.5.1/fetchmail.c
|
|
@@ -470,7 +470,7 @@ int main(int argc, char **argv)
|
|
if (NO_PASSWORD(ctl))
|
|
/* Server won't care what the password is, but there
|
|
must be some non-null string here. */
|
|
- ctl->password = ctl->remotename;
|
|
+ ctl->password = xstrdup(ctl->remotename);
|
|
else if (!ctl->passwordfile && ctl->passwordfd==-1)
|
|
{
|
|
const netrc_entry *p;
|
|
@@ -1118,7 +1118,15 @@ static void optmerge(struct query *h2, s
|
|
|
|
FLAG_MERGE(wildcard);
|
|
STRING_MERGE(remotename);
|
|
- STRING_MERGE(password);
|
|
+ if (force ? !!h1->password : !h2->password) {
|
|
+ if (h2->password) {
|
|
+ memset(h2->password, 0x55, strlen(h2->password));
|
|
+ xfree(h2->password);
|
|
+ }
|
|
+ if (h1->password) {
|
|
+ h2->password = xstrdup(h1->password);
|
|
+ }
|
|
+ }
|
|
FLAG_MERGE(passwordfile);
|
|
if (force ? h1->passwordfd!=-1 : h2->passwordfd==-1) {
|
|
h2->passwordfd = h1->passwordfd;
|