8 Commits

Author SHA256 Message Date
48e2995225 Accepting request 1319686 from server:mail
OBS-URL: https://build.opensuse.org/request/show/1319686
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fetchmail?expand=0&rev=120
2025-11-24 13:14:43 +00:00
219026e94b - Update to 6.6.1
*  fixed several bugs in SMTP AUTH 
## TRANSLATIONS were updated by these fine people (randomized order):
* sr:    Мирослав Николић [Serbian]
* es:    Cristian Othón Martínez Vera [Spanish]

OBS-URL: https://build.opensuse.org/package/show/server:mail/fetchmail?expand=0&rev=169
2025-11-24 09:39:28 +00:00
2eb2a94832 Accepting request 1313355 from server:mail
OBS-URL: https://build.opensuse.org/request/show/1313355
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fetchmail?expand=0&rev=119
2025-10-24 15:24:07 +00:00
ab8ae9b549 - Update to 6.5.7
* More fixes for SMTP bugs and others
## BUGFIXES:
  * When authenticating to an SMTP server, the AUTH LOGIN method (which didn't
    become a proposed standard, and is only the third method fetchmail would try,
    if CRAM-MD5 and PLAIN weren't offered) required that the server returned
    a 334 code followed by a blank and by a decodable base64 challenge we ignored
    anyways.  This is in line with RFC 4952.
      However, to improve compatibility, fetchmail now accepts anything that
    starts with "334 " and disregards the remainder of the line.
    At the same time, AUTH LOGIN was deprecated. AUTH PLAIN should be available
    everywhere AUTH LOGIN is, and is specified in IETF RFC 4616.
  * When authenticating to an SMTP server, i. e. esmtpname/esmtppassword are
    defined, check for errors, and skip servers that do not understand EHLO,
    because we cannot negotiate supported authentication schemes with them.
    This should avoid attempting to send a lot of messages and see them rejected.
  * When authenticating to an SMTP server, do not send client abort "*" when
    we receive any other server reply but 334.
  * Extend 6.5.6's RFC-5321 address-literal fix to MAIL FROM. This might
    apply when we only have a server's IP address and need to quality
    addresses without domain. Fixes Debian Bug#1080025.
  * SMTP AUTH can now look up passwords from the .netrc file - for that,
    fetchmail's esmtpname setting must match the login for the given host in
    .netrc. Fixes Debian Bug#1056651 by Ticker Berkin.
  * Improve the GSSAPI (Kerberos V) build, which was pretty hard to get working.
    This was improved. Recommendation:
    - For autoconf builds (./configure), be sure to have the desired krb5-config
    executable early on $PATH before running ./configure.
    - For meson builds, be sure to list the path to your krb5-gssapi.pc file on
    PKG_CONFIG_PATH.  (meson will fall back to krb5-config, so if that's on PATH,

OBS-URL: https://build.opensuse.org/package/show/server:mail/fetchmail?expand=0&rev=167
2025-10-24 07:42:37 +00:00
7e08acdc48 Accepting request 1312356 from server:mail
OBS-URL: https://build.opensuse.org/request/show/1312356
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fetchmail?expand=0&rev=118
2025-10-21 09:15:48 +00:00
7f7443dc80 - Update to 6.5.6 fixes [bsc#1251194,CVE-2025-61962]
* 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
* SECURITY BUGFIX:
  * fetchmail-SA-2025-01.txt: CVE pending assignment by MITRE
    An SMTP server advertising EHLO and AUTH, and if fetchmail is configured to
    authenticate (esmtpname and esmtppassword given and non-empty), the server
    might crash fetchmail by sending a "334" response without further blank to
    fetchmail's AUTH request. This is in violation of applicable RFC-4952 though.
    Fetchmail now detects this situation and reports it separately as
    malformed server reply.
    Fetchmail 6.5.6 has been released without waiting for translation updates
    or CVE identifier, these will be provided in followup releases.
  
* BUGFIXES:
  * RFC-5321: When the --smtpaddress, --smtphost, --smtpname, -D or -S argument
    is an numeric address literal such as 192.0.2.2 or 2001:0DB8::4321, properly
    format that as such in the SMTP RCPT command as user@[192.0.2.2] or
    user@[IPv6:2001:0DB8::4321].
  
  * When printing output on the console while fetching mail, do not intersperse
    another copy of our program name and date in the middle of a log line.
    Workaround for older versions: --logfile /dev/tty  (might also use
    --logfile /dev/stderr) - but note this changes buffering behavior and may
    output to appear later and without ticker marks.

OBS-URL: https://build.opensuse.org/package/show/server:mail/fetchmail?expand=0&rev=165
2025-10-20 09:53:13 +00:00
944d873851 Accepting request 1289765 from server:mail
OBS-URL: https://build.opensuse.org/request/show/1289765
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fetchmail?expand=0&rev=117
2025-07-02 16:17:05 +00:00
4a2f1bd65f - Update to 6.5.4
* BUGFIXES:
    * socket: avoid crash when writing to a socket without SSL/TLS fails.
      Reported by Andrea Venturoli via mailing list, fixes #71.
    * wolfSSL support: avoid fetchmail.c compilation failure in certain
      configurations of wolfSSL (for instance, on FreeBSD's wolfssl-5.8.0_1
      package), OpenSSL_version enables a newer 1.1.x compat API that passes its
      argument to a wolfSSL API, with OPENSSL_DIR and OPENSSL_ENGINES_DIR, causing
      related compiler failures.
      See <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287435>.

OBS-URL: https://build.opensuse.org/package/show/server:mail/fetchmail?expand=0&rev=163
2025-07-02 07:12:04 +00:00
13 changed files with 233 additions and 113 deletions

Binary file not shown.

View File

@@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE3EplW9mTzUhx+oIQ5BKxVu/zhVoFAmdyhGMACgkQ5BKxVu/z
hVq+Rw/+MiJMf7jW1R8snd/ayVENhVRdWwOGdVYZJ29mk4ANzqxA4M0S6UfqnEj0
x3NJo0hwfAkYdAI8nmi4NkjvtGDFORx2JpsGMvKGbVmn74hsbZsvCSV6gFRwg8UI
VZd4B0Hq9hW5H5/GTgCjcXL4lrcX+LB7Oc3DRiu2D+r9W2WS+chp5NVbwAAkOeC5
8vOKAiJJzhS1+BlApY/SPRaclVyP3crNOx5VPQTB+nMq8cD8OM+zPDbj+C8d3XdV
xNtaSH5AjtAbWXIiN63tVbZ3cIeUWZNMncjbni5ALXA6O7wzbMXOhYAx82muAkRq
KBekjLSz40rRweLzDnL1UdQdrR/nQzg0U5MqbjUYZRIG5UgP0zpUndt0oXq1wBaH
njwnUJmCB1vQcadD/QnvQishza9JmCNsjLlAt6/oSXzeYEQKvDmVwN8cZzDzd2J6
inBD6ISoYzvEa9JGdBhWlk8891WPXdN2W+CyHVj40VJGtuXNdzJmnx4eN5v2YqWT
eugsQmEPpQNwFDXfqpSqi1gPZM9pVdMObFzg+c1g49exs7fXD7NUmttax8Dv+D/T
aM1hrqYjuDTfxFpLnZS4JZSWqKCFQmc2Ubsgyj4QsBUXvhmAygcnIv2XIh0nOSGt
tSJu9CKKIR59cu6ZOnT4soFWraXmTWnhAu9o13hzQbIp7is5cE4=
=/RRT
-----END PGP SIGNATURE-----

3
fetchmail-6.6.1.tar.xz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:38d01fe404e67514df394a6ed1a815bbb61aa90c0fa4402252593aced0e38a1d
size 1090212

View File

@@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE3EplW9mTzUhx+oIQ5BKxVu/zhVoFAmkUtIMACgkQ5BKxVu/z
hVpRLA/9GGwY26j2XSo7HByx0rB7gSKbNtdTzF2tXskmmwHcxYX2hHdQ8+bKkzDt
scRiioHXg1OcNsNnioEIhKSlW43Zql/fn9SFs2ELI5wwXbU4Ayp67wJTvx9PLCzx
wQT0C9p/2w7S2utGGftXm+hQ7lVqqY3OB7nH/vIvmgOzRwXf4QR8p8KM/BBkuHkm
KOKc+YXptJcv05Z0ghpKbVVH8V7S0+t1HlJxF9yAsvSGk/AvtWlqgCzKxHM0SfZj
H1jNvApZv9BsuH3/vcmHz12AxokHIXbwZyRYXAG0aR8oOQw/k7lSZYDnF0FQ8b9a
noMdW3GB0vcbFY34kLBgmuYvpO9h2iJqNiiapPWHvDgDab3Qu1pAak2uGt68nhXK
doi8sMxJGvHsqUqKZG2zeQpR7Tp0Iy15foywj1NNDiRmhyLnHUlNvULCGUYDKzMR
eGFxWIQK7KU3aZ3RFlGbDiSSh0jnjNtVnZPOQA5KsBXVh0ow4TRHcUUTBug1H1MU
fBFnvjApbWkYILx8ensnDQbFe+GX7VZeBLBaUU1DaRN9yCA01zVh0wCJiQNGCl0s
3CaPVV77xOUHaA97RCu5ateWANiA6pHfk13u91KjJO3A9v139y3pAL8pcWBKT0mq
qHQhA/Dxy3GzbfxqbW6MttqhY/bfD6ApRTTWiCrZLc+B0PdKTr4=
=G4Bq
-----END PGP SIGNATURE-----

View File

@@ -13,11 +13,11 @@ Git-commit: cdd7182f65734c97723ba5f282040e08d830e650
rcfile_y.y | 6 ++++
6 files changed, 145 insertions(+), 3 deletions(-)
Index: fetchmail-6.5.1/fetchmail.c
Index: fetchmail-6.5.6/fetchmail.c
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.c
+++ fetchmail-6.5.1/fetchmail.c
@@ -471,7 +471,7 @@ int main(int argc, char **argv)
--- fetchmail-6.5.6.orig/fetchmail.c
+++ fetchmail-6.5.6/fetchmail.c
@@ -498,7 +498,7 @@ int main(int argc, char **argv)
/* Server won't care what the password is, but there
must be some non-null string here. */
ctl->password = ctl->remotename;
@@ -26,7 +26,7 @@ Index: fetchmail-6.5.1/fetchmail.c
{
const netrc_entry *p;
@@ -649,8 +649,81 @@ int main(int argc, char **argv)
@@ -676,8 +676,81 @@ int main(int argc, char **argv)
if (ctl->active && !(implicitmode && ctl->server.skip)
&& !NO_PASSWORD(ctl) && !ctl->password)
{
@@ -109,18 +109,18 @@ Index: fetchmail-6.5.1/fetchmail.c
fprintf(stderr,
GT_("fetchmail: can't find a password for %s@%s.\n"),
ctl->remotename, ctl->server.pollname);
@@ -1046,6 +1119,10 @@ static void optmerge(struct query *h2, s
@@ -1076,6 +1149,10 @@ static void optmerge(struct query *h2, s
FLAG_MERGE(wildcard);
STRING_MERGE(remotename);
STRING_MERGE(password);
STRING_MERGE_SAFE(password);
+ FLAG_MERGE(passwordfile);
+ if (force ? h1->passwordfd!=-1 : h2->passwordfd==-1) {
+ h2->passwordfd = h1->passwordfd;
+ h2->passwordfd = h1->passwordfd;
+ }
STRING_MERGE(mda);
STRING_MERGE(bsmtp);
FLAG_MERGE(listener);
@@ -1112,6 +1189,7 @@ static int load_params(int argc, char **
@@ -1142,6 +1219,7 @@ static int load_params(int argc, char **
def_opts.smtp_socket = -1;
def_opts.smtpaddress = (char *)0;
def_opts.smtpname = (char *)0;
@@ -128,11 +128,11 @@ Index: fetchmail-6.5.1/fetchmail.c
def_opts.server.protocol = P_AUTO;
def_opts.server.timeout = CLIENT_TIMEOUT;
def_opts.server.idle_timeout = CLIENT_IDLE_TIMEOUT;
Index: fetchmail-6.5.1/fetchmail.h
Index: fetchmail-6.5.6/fetchmail.h
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.h
+++ fetchmail-6.5.1/fetchmail.h
@@ -312,6 +312,8 @@ struct query
--- fetchmail-6.5.6.orig/fetchmail.h
+++ fetchmail-6.5.6/fetchmail.h
@@ -319,6 +319,8 @@ struct query
int wildcard; /* should unmatched names be passed through */
char *remotename; /* remote login name to use */
char *password; /* remote password to use */
@@ -141,11 +141,11 @@ Index: fetchmail-6.5.1/fetchmail.h
struct idlist *mailboxes; /* list of mailboxes to check */
/* per-forwarding-target data */
Index: fetchmail-6.5.1/fetchmail.man
Index: fetchmail-6.5.6/fetchmail.man
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.man
+++ fetchmail-6.5.1/fetchmail.man
@@ -1056,6 +1056,37 @@ The default is your login name on the cl
--- fetchmail-6.5.6.orig/fetchmail.man
+++ fetchmail-6.5.6/fetchmail.man
@@ -1062,6 +1062,37 @@ The default is your login name on the cl
\fBfetchmail\fP.
See USER AUTHENTICATION below for a complete description.
.TP
@@ -183,7 +183,7 @@ Index: fetchmail-6.5.1/fetchmail.man
.B \-I <specification> | \-\-interface <specification>
(Keyword: interface)
.br
@@ -1148,7 +1179,8 @@ setting also allows the non-standard "xo
@@ -1154,7 +1185,8 @@ setting also allows the non-standard "xo
the same token) if the server only claims to support "xoauth2".
External tools are necessary to obtain
such tokens. Access tokens often expire fairly quickly (e.g. 1 hour),
@@ -193,7 +193,7 @@ Index: fetchmail-6.5.1/fetchmail.man
oauth2.py script from
.URL https://github.com/google/gmail-oauth2-tools/wiki/OAuth2DotPyRunThrough "Google's Oauth2 Run Through" ,
and other oauth2 documentation. For services like gmail, an "App Password"
@@ -2100,6 +2132,12 @@ T}
@@ -2109,6 +2141,12 @@ T}
pass[word] \& \& T{
Specify remote account password
T}
@@ -206,10 +206,10 @@ Index: fetchmail-6.5.1/fetchmail.man
ssl \& \& T{
Connect to server over the specified base protocol using SSL encryption
T}
Index: fetchmail-6.5.1/options.c
Index: fetchmail-6.5.6/options.c
===================================================================
--- fetchmail-6.5.1.orig/options.c
+++ fetchmail-6.5.1/options.c
--- fetchmail-6.5.6.orig/options.c
+++ fetchmail-6.5.6/options.c
@@ -29,6 +29,8 @@ enum {
LA_POSTMASTER,
LA_NOBOUNCE,
@@ -228,7 +228,7 @@ Index: fetchmail-6.5.1/options.c
{"timeout", required_argument, (int *) 0, 't' },
{"envelope", required_argument, (int *) 0, 'E' },
{"qvirtual", required_argument, (int *) 0, 'Q' },
@@ -231,6 +235,7 @@ int parsecmdline (int argc /** argument
@@ -232,6 +236,7 @@ int parsecmdline (int argc /** argument
memset(ctl, '\0', sizeof(struct query)); /* start clean */
ctl->smtp_socket = -1;
@@ -236,7 +236,7 @@ Index: fetchmail-6.5.1/options.c
while (!errflag &&
(c = getopt_long(argc,argv,shortoptions,
@@ -402,6 +407,17 @@ int parsecmdline (int argc /** argument
@@ -409,6 +414,17 @@ int parsecmdline (int argc /** argument
errflag++;
}
break;
@@ -254,10 +254,10 @@ Index: fetchmail-6.5.1/options.c
case 't':
ctl->server.timeout = xatoi(optarg, &errflag);
if (ctl->server.timeout == 0)
Index: fetchmail-6.5.1/rcfile_l.l
Index: fetchmail-6.5.6/rcfile_l.l
===================================================================
--- fetchmail-6.5.1.orig/rcfile_l.l
+++ fetchmail-6.5.1/rcfile_l.l
--- fetchmail-6.5.6.orig/rcfile_l.l
+++ fetchmail-6.5.6/rcfile_l.l
@@ -116,6 +116,8 @@ accept { return ACCEPT; }
reject { return REJECT_; }
@@ -266,12 +266,12 @@ Index: fetchmail-6.5.1/rcfile_l.l
+passwordfd { return PASSWORDFD; }
<INITIAL,NAME>pass(word)? {SETSTATE(NAME); return PASSWORD; }
folder(s)? { return FOLDER; }
smtp(host)? { return SMTPHOST; }
Index: fetchmail-6.5.1/rcfile_y.y
smtp(host(s)?)? { return SMTPHOST; }
Index: fetchmail-6.5.6/rcfile_y.y
===================================================================
--- fetchmail-6.5.1.orig/rcfile_y.y
+++ fetchmail-6.5.1/rcfile_y.y
@@ -62,6 +62,7 @@ void yyerror (const char *s)
--- fetchmail-6.5.6.orig/rcfile_y.y
+++ fetchmail-6.5.6/rcfile_y.y
@@ -62,6 +62,7 @@ static void yyerror (const char *s)
%token DEFAULTS POLL SKIP VIA AKA LOCALDOMAINS PROTOCOL
%token AUTHENTICATE TIMEOUT IDLETIMEOUT KPOP SDPS ENVELOPE QVIRTUAL
%token USERNAME PASSWORD FOLDER SMTPHOST FETCHDOMAINS MDA BSMTP LMTP

View File

@@ -9,11 +9,11 @@ Git-commit: cc6e146d516140df800da68976eb7c0aa1cef7c0
fetchmail.h | 1 +
2 files changed, 8 insertions(+)
Index: fetchmail-6.5.1/base64.c
Index: fetchmail-6.5.6/base64.c
===================================================================
--- fetchmail-6.5.1.orig/base64.c
+++ fetchmail-6.5.1/base64.c
@@ -66,6 +66,13 @@ fail:
--- fetchmail-6.5.6.orig/base64.c
+++ fetchmail-6.5.6/base64.c
@@ -77,6 +77,13 @@ fail:
return rc;
}
@@ -25,13 +25,13 @@ Index: fetchmail-6.5.1/base64.c
+}
+
int from64tobits(void *out_, const char *in, int maxlen)
/* base 64 to raw bytes in quasi-big-endian order, returning count of bytes */
/* maxlen limits output buffer size, set to zero to ignore */
Index: fetchmail-6.5.1/fetchmail.h
/** base 64 to raw bytes in quasi-big-endian order, \return count of bytes, or
* -1 on error (invalid input characters, or input not properly padded with '='
Index: fetchmail-6.5.6/fetchmail.h
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.h
+++ fetchmail-6.5.1/fetchmail.h
@@ -611,6 +611,7 @@ int prc_filecheck(const char *, const fl
--- fetchmail-6.5.6.orig/fetchmail.h
+++ fetchmail-6.5.6/fetchmail.h
@@ -618,6 +618,7 @@ int prc_filecheck(const char *, const fl
/* base64.c */
unsigned len64frombits(unsigned inlen); /** calculate length needed to encode inlen octets. warnings: 1. caller needs to add 1 for a trailing \0 byte himself. 2. returns 0 for inlen 0! */
int to64frombits(char *, const void *, int inlen, size_t outlen);

View File

@@ -8,11 +8,11 @@ Git-commit: 919fd787540c4a3fa4694566edce406df1e42001
fetchmail.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: fetchmail-6.5.1/fetchmail.h
Index: fetchmail-6.5.6/fetchmail.h
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.h
+++ fetchmail-6.5.1/fetchmail.h
@@ -101,7 +101,7 @@ struct addrinfo;
--- fetchmail-6.5.6.orig/fetchmail.h
+++ fetchmail-6.5.6/fetchmail.h
@@ -108,7 +108,7 @@
#define NAMELEN 64 /* max username length */
/* oauth2 access tokens seem to be about 130 characters; make this longer: */

View File

@@ -13,11 +13,11 @@ 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
Index: fetchmail-6.5.6/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)
--- fetchmail-6.5.6.orig/fetchmail.c
+++ fetchmail-6.5.6/fetchmail.c
@@ -497,7 +497,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. */
@@ -26,11 +26,12 @@ Index: fetchmail-6.5.1/fetchmail.c
else if (!ctl->passwordfile && ctl->passwordfd==-1)
{
const netrc_entry *p;
@@ -1118,7 +1118,15 @@ static void optmerge(struct query *h2, s
@@ -1148,8 +1148,15 @@ static void optmerge(struct query *h2, s
FLAG_MERGE(wildcard);
STRING_MERGE(remotename);
- STRING_MERGE(password);
- STRING_MERGE_SAFE(password);
- FLAG_MERGE(passwordfile);
+ if (force ? !!h1->password : !h2->password) {
+ if (h2->password) {
+ memset(h2->password, 0x55, strlen(h2->password));
@@ -38,8 +39,8 @@ Index: fetchmail-6.5.1/fetchmail.c
+ }
+ if (h1->password) {
+ h2->password = xstrdup(h1->password);
+ }
+ }
FLAG_MERGE(passwordfile);
+ }
+ FLAG_MERGE(passwordfile);
if (force ? h1->passwordfd!=-1 : h2->passwordfd==-1) {
h2->passwordfd = h1->passwordfd;
h2->passwordfd = h1->passwordfd;
}

View File

@@ -17,11 +17,11 @@ not be sufficient.
fetchmail.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: fetchmail-6.5.1/fetchmail.h
Index: fetchmail-6.5.6/fetchmail.h
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.h
+++ fetchmail-6.5.1/fetchmail.h
@@ -101,7 +101,7 @@ struct addrinfo;
--- fetchmail-6.5.6.orig/fetchmail.h
+++ fetchmail-6.5.6/fetchmail.h
@@ -108,7 +108,7 @@
#define NAMELEN 64 /* max username length */
/* oauth2 access tokens seem to be about 130 characters; make this longer: */

View File

@@ -9,11 +9,11 @@ Git-commit: c2b96715bb39b9cfd1c751eae6b0111bed9c8581
fetchmail.man | 9 +----
2 files changed, 69 insertions(+), 40 deletions(-)
Index: fetchmail-6.5.1/fetchmail.c
Index: fetchmail-6.5.6/fetchmail.c
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.c
+++ fetchmail-6.5.1/fetchmail.c
@@ -681,48 +681,19 @@ int main(int argc, char **argv)
--- fetchmail-6.5.6.orig/fetchmail.c
+++ fetchmail-6.5.6/fetchmail.c
@@ -708,48 +708,19 @@ int main(int argc, char **argv)
}
ctl->password = xstrdup(msg);
@@ -67,8 +67,8 @@ Index: fetchmail-6.5.1/fetchmail.c
} else if (!isatty(0)) {
fprintf(stderr,
GT_("fetchmail: can't find a password for %s@%s.\n"),
@@ -739,6 +710,8 @@ int main(int argc, char **argv)
ctl->password = xstrdup((char *)fm_getpassword(tmpbuf));
@@ -767,6 +738,8 @@ int main(int argc, char **argv)
fm_clearpassword();
free(tmpbuf);
}
+ } else {
@@ -76,7 +76,7 @@ Index: fetchmail-6.5.1/fetchmail.c
}
}
@@ -938,6 +911,65 @@ int main(int argc, char **argv)
@@ -966,6 +939,65 @@ int main(int argc, char **argv)
dofastuidl = 0; /* this is reset in the driver if required */
@@ -142,11 +142,21 @@ Index: fetchmail-6.5.1/fetchmail.c
querystatus = query_host(ctl);
if (NUM_NONZERO(ctl->fastuidl))
Index: fetchmail-6.5.1/fetchmail.man
@@ -1156,7 +1188,8 @@ static void optmerge(struct query *h2, s
if (h1->password) {
h2->password = xstrdup(h1->password);
}
- FLAG_MERGE(passwordfile);
+ }
+ FLAG_MERGE(passwordfile);
if (force ? h1->passwordfd!=-1 : h2->passwordfd==-1) {
h2->passwordfd = h1->passwordfd;
}
Index: fetchmail-6.5.6/fetchmail.man
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.man
+++ fetchmail-6.5.1/fetchmail.man
@@ -1061,12 +1061,9 @@ See USER AUTHENTICATION below for a comp
--- fetchmail-6.5.6.orig/fetchmail.man
+++ fetchmail-6.5.6/fetchmail.man
@@ -1067,12 +1067,9 @@ See USER AUTHENTICATION below for a comp
.br
Specifies a file name from which to read the first line to use as the password.
Useful if something changes the password/token often without regenerating a
@@ -161,7 +171,7 @@ Index: fetchmail-6.5.1/fetchmail.man
.TP
.B \-\-passwordfd <integer>
(Keyword: passwordfd)
@@ -1079,7 +1076,7 @@ although it could also be a redirected i
@@ -1085,7 +1082,7 @@ although it could also be a redirected i
(equivalent to "fetchmail \-\-passwordfd 5 5</path/to/file").
Useful if something wants to manage password ownership more securely
than files, or if the password/token changes often,

View File

@@ -16,12 +16,12 @@ Git-commit: 7b5c56f0fa3acb4c5589a4747c1921a311d8a464
create mode 100644 oauth2.c
create mode 100644 oauth2.h
Index: fetchmail-6.5.1/Makefile.am
Index: fetchmail-6.5.6/Makefile.am
===================================================================
--- fetchmail-6.5.1.orig/Makefile.am
+++ fetchmail-6.5.1/Makefile.am
@@ -63,7 +63,7 @@ fetchmail_SOURCES= fetchmail.h getopt.h
fetchmail.c env.c idle.c options.c daemon.c \
--- fetchmail-6.5.6.orig/Makefile.am
+++ fetchmail-6.5.6/Makefile.am
@@ -69,7 +69,7 @@ fetchmail_SOURCES= fetchmail.h getopt.h
fetchmail.c env.c idle.c options.c \
driver.c transact.c sink.c smtp.c \
idlist.c uid.c mxget.c md5ify.c cram.c gssapi.c \
- opie.c interface.c netrc.c \
@@ -29,11 +29,11 @@ Index: fetchmail-6.5.1/Makefile.am
unmime.c conf.c checkalias.c uid_db.h uid_db.c\
lock.h lock.c \
rcfile_l.l rcfile_y.y \
Index: fetchmail-6.5.1/fetchmail.man
Index: fetchmail-6.5.6/fetchmail.man
===================================================================
--- fetchmail-6.5.1.orig/fetchmail.man
+++ fetchmail-6.5.1/fetchmail.man
@@ -1114,7 +1114,7 @@ AUTHENTICATION below for details). The
--- fetchmail-6.5.6.orig/fetchmail.man
+++ fetchmail-6.5.6/fetchmail.man
@@ -1120,7 +1120,7 @@ AUTHENTICATION below for details). The
excruciating exactness, \fBkerberos_v4\fP), \fBgssapi\fP,
\fBcram\-md5\fP, \fBotp\fP, \fBntlm\fP, \fBmsn\fP (only for POP3),
\fBexternal\fP (only IMAP), \fBimplicit\fP (\fBssh\fP is understood
@@ -42,7 +42,7 @@ Index: fetchmail-6.5.1/fetchmail.man
When \fBany\fP (the default) is specified, fetchmail tries
first methods that do not require a password (EXTERNAL, GSSAPI, KERBEROS\ IV,
KERBEROS\ 5); then it looks for methods that mask your password
@@ -2492,8 +2492,7 @@ Legal protocol identifiers for use with
@@ -2504,8 +2504,7 @@ Legal protocol identifiers for use with
Legal authentication types are 'any', 'password', 'kerberos',
\&'kerberos_v4', 'kerberos_v5' and 'gssapi', 'cram\-md5', 'otp', 'msn'
(only for POP3), 'ntlm', 'implicit', 'external' (only IMAP),
@@ -52,10 +52,10 @@ Index: fetchmail-6.5.1/fetchmail.man
The 'password' type specifies
authentication by normal transmission of a password (the password may be
plain text or subject to protocol-specific encryption as in CRAM-MD5);
Index: fetchmail-6.5.1/imap.c
Index: fetchmail-6.5.6/imap.c
===================================================================
--- fetchmail-6.5.1.orig/imap.c
+++ fetchmail-6.5.1/imap.c
--- fetchmail-6.5.6.orig/imap.c
+++ fetchmail-6.5.6/imap.c
@@ -15,6 +15,7 @@
#include <stdlib.h>
#include <limits.h>
@@ -64,7 +64,7 @@ Index: fetchmail-6.5.1/imap.c
#include "socket.h"
#include "i18n.h"
@@ -417,63 +418,23 @@ static int do_imap_ntlm(int sock, struct
@@ -415,63 +416,23 @@ static int do_imap_ntlm(int sock, struct
static int do_imap_oauthbearer(int sock, struct query *ctl,flag xoauth2)
{
@@ -134,10 +134,10 @@ Index: fetchmail-6.5.1/imap.c
return ok;
}
Index: fetchmail-6.5.1/oauth2.c
Index: fetchmail-6.5.6/oauth2.c
===================================================================
--- /dev/null
+++ fetchmail-6.5.1/oauth2.c
+++ fetchmail-6.5.6/oauth2.c
@@ -0,0 +1,61 @@
+/*
+ * oauth2.c -- oauthbearer and xoauth2 support
@@ -200,10 +200,10 @@ Index: fetchmail-6.5.1/oauth2.c
+
+ return oauth2b64;
+}
Index: fetchmail-6.5.1/oauth2.h
Index: fetchmail-6.5.6/oauth2.h
===================================================================
--- /dev/null
+++ fetchmail-6.5.1/oauth2.h
+++ fetchmail-6.5.6/oauth2.h
@@ -0,0 +1,6 @@
+#ifndef OAUTH2_H
+#define OAUTH2_H
@@ -211,10 +211,10 @@ Index: fetchmail-6.5.1/oauth2.h
+char *get_oauth2_string(struct query *ctl,flag xoauth2);
+
+#endif /*OAUTH2_H*/
Index: fetchmail-6.5.1/pop3.c
Index: fetchmail-6.5.6/pop3.c
===================================================================
--- fetchmail-6.5.1.orig/pop3.c
+++ fetchmail-6.5.1/pop3.c
--- fetchmail-6.5.6.orig/pop3.c
+++ fetchmail-6.5.6/pop3.c
@@ -17,6 +17,7 @@
#include <stdlib.h>
#include <errno.h>

View File

@@ -1,3 +1,112 @@
-------------------------------------------------------------------
Mon Nov 17 09:19:26 UTC 2025 - Angel Yankov <angel.yankov@suse.com>
- Update to 6.6.1
* fixed several bugs in SMTP AUTH
## TRANSLATIONS were updated by these fine people (randomized order):
* sr: Мирослав Николић [Serbian]
* es: Cristian Othón Martínez Vera [Spanish]
-------------------------------------------------------------------
Mon Oct 20 09:58:12 UTC 2025 - Angel Yankov <angel.yankov@suse.com>
- Update to 6.5.7
* More fixes for SMTP bugs and others
## BUGFIXES:
* When authenticating to an SMTP server, the AUTH LOGIN method (which didn't
become a proposed standard, and is only the third method fetchmail would try,
if CRAM-MD5 and PLAIN weren't offered) required that the server returned
a 334 code followed by a blank and by a decodable base64 challenge we ignored
anyways. This is in line with RFC 4952.
However, to improve compatibility, fetchmail now accepts anything that
starts with "334 " and disregards the remainder of the line.
At the same time, AUTH LOGIN was deprecated. AUTH PLAIN should be available
everywhere AUTH LOGIN is, and is specified in IETF RFC 4616.
* When authenticating to an SMTP server, i. e. esmtpname/esmtppassword are
defined, check for errors, and skip servers that do not understand EHLO,
because we cannot negotiate supported authentication schemes with them.
This should avoid attempting to send a lot of messages and see them rejected.
* When authenticating to an SMTP server, do not send client abort "*" when
we receive any other server reply but 334.
* Extend 6.5.6's RFC-5321 address-literal fix to MAIL FROM. This might
apply when we only have a server's IP address and need to quality
addresses without domain. Fixes Debian Bug#1080025.
* SMTP AUTH can now look up passwords from the .netrc file - for that,
fetchmail's esmtpname setting must match the login for the given host in
.netrc. Fixes Debian Bug#1056651 by Ticker Berkin.
* Improve the GSSAPI (Kerberos V) build, which was pretty hard to get working.
This was improved. Recommendation:
- For autoconf builds (./configure), be sure to have the desired krb5-config
executable early on $PATH before running ./configure.
- For meson builds, be sure to list the path to your krb5-gssapi.pc file on
PKG_CONFIG_PATH. (meson will fall back to krb5-config, so if that's on PATH,
that should also work.)
-------------------------------------------------------------------
Tue Oct 7 20:46:22 UTC 2025 - Angel Yankov <angel.yankov@suse.com>
- Update to 6.5.6 fixes [bsc#1251194,CVE-2025-61962]
* 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
* SECURITY BUGFIX:
* fetchmail-SA-2025-01.txt: CVE pending assignment by MITRE
An SMTP server advertising EHLO and AUTH, and if fetchmail is configured to
authenticate (esmtpname and esmtppassword given and non-empty), the server
might crash fetchmail by sending a "334" response without further blank to
fetchmail's AUTH request. This is in violation of applicable RFC-4952 though.
Fetchmail now detects this situation and reports it separately as
malformed server reply.
Fetchmail 6.5.6 has been released without waiting for translation updates
or CVE identifier, these will be provided in followup releases.
* BUGFIXES:
* RFC-5321: When the --smtpaddress, --smtphost, --smtpname, -D or -S argument
is an numeric address literal such as 192.0.2.2 or 2001:0DB8::4321, properly
format that as such in the SMTP RCPT command as user@[192.0.2.2] or
user@[IPv6:2001:0DB8::4321].
* When printing output on the console while fetching mail, do not intersperse
another copy of our program name and date in the middle of a log line.
Workaround for older versions: --logfile /dev/tty (might also use
--logfile /dev/stderr) - but note this changes buffering behavior and may
output to appear later and without ticker marks.
* A few low-priority memory leaks in the command-line options parser were
fixed. Since this parser runs only once, leaks are harmless.
* Some minor code cleanups and robustness fixes were made, and we should
see fewer compiler warnings as a result.
* CHANGES:
* Given the slow update schedules of some distributions, already add code
that checks if time_t() is good beyond the year 2038,
meaning time_t is either unsigned (which would last until 2106) or
64 bits wide. If the system isn't safe, warn on every launch of fetchmail
beginning 2028-01-01 at 00:00 GMT so users have 10 years to plan.
Fetchmail will also print a warning if time(time_t *t) overflows.
-------------------------------------------------------------------
Thu Jun 26 10:25:36 UTC 2025 - Angel Yankov <angel.yankov@suse.com>
- Update to 6.5.4
* BUGFIXES:
* socket: avoid crash when writing to a socket without SSL/TLS fails.
Reported by Andrea Venturoli via mailing list, fixes #71.
* wolfSSL support: avoid fetchmail.c compilation failure in certain
configurations of wolfSSL (for instance, on FreeBSD's wolfssl-5.8.0_1
package), OpenSSL_version enables a newer 1.1.x compat API that passes its
argument to a wolfSSL API, with OPENSSL_DIR and OPENSSL_ENGINES_DIR, causing
related compiler failures.
See <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287435>.
-------------------------------------------------------------------
Tue Jan 14 08:56:46 UTC 2025 - Angel Yankov <angel.yankov@suse.com>

View File

@@ -21,7 +21,7 @@
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
Name: fetchmail
Version: 6.5.2
Version: 6.6.1
Release: 0
Summary: Full-Featured POP and IMAP Mail Retrieval Daemon
License: GPL-2.0-or-later