Patch by Demi <m@tfiu.de> to fix Debian bug #621690.
From https://bugs.debian.org/621690:
> wmbiff change path of my mailboxes next nearest.
>
> For example wmbiff change 'gleb' to 'glil' for second and fourth mailboxes.
> However the 1st, 3rd and 5th mailboxes have correct path.
Well, the indices don't really enter. I'm actually surprised this
isn't more trouble.
The underlying reason is that in wmbiff.c:parse_mbox_path, the
program calls
mboxCreate((&mbox[item]), mbox[item].path);
which for maildirs calls
int maildirCreate(Pop3 pc, const char *str)
in maildirClient.c. str in this way is an alias for pc->path.
In maildirCreate, after some char acrobatics, the program eventually
does
strncpy(pc->path, str + 8 + i, BUF_BIG - 1);
to cut off the leading stuff from the maildir. The result of this
operation is not defined, as pc->path and str point to the same
memory and thus the arguments overlap, which strncpy outlaws.
A simple fix is to copy manually, like this:
DM(pc, DEBUG_ERROR, "maildir '%s' is too long.\n", str + 8 + i);
memset(pc->path, 0, BUF_BIG);
} else {
+ const char *sp = str + 8 + i;
+ char *dp = pc->path;
+
+ while (*sp && sp-str<BUF_BIG-1) {
+ *dp++ = *sp++;
+ }
+ *dp = 0;
- strncpy(pc->path, , BUF_BIG - 1); /* cut off ``maildir:'' */
}
-- it's what I'm doing now. But I give you that's a bit pedestrian.
Patch by Nye Liu <nyet@nyet.org> to fix Debian bug #830889 [1].
Dear Maintainer,
Outlook Office365 IMAP servers now expect a client to issue at least one
EXAMINE before STATUS, or UNSEEN is always zero:
"unsub" folder has two messages, one unseen.
Broken:
56:04.84 > CJFK1 LOGIN "nyet@xxx" "xxx"
56:21.99 < CJFK1 OK LOGIN completed.
56:21.99 > CJFK2 STATUS unsub (MESSAGES UNSEEN)
56:22.20 < * STATUS unsub (MESSAGES 2 UNSEEN 0)
56:22.20 < CJFK2 OK STATUS completed.
Works:
56:46.04 > BPEB1 LOGIN "nyet@xxx" "xxx"
56:51.43 < BPEB1 OK LOGIN completed.
56:51.43 > BPEB2 EXAMINE unsub
56:51.67 < * 2 EXISTS
56:51.67 < * 0 RECENT
56:51.67 < * FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)
56:51.67 < * OK [PERMANENTFLAGS ()] Permanent flags
56:51.67 < * OK [UNSEEN 2] Is the first unseen message
56:51.67 < * OK [UIDVALIDITY 164] UIDVALIDITY value
56:51.67 < * OK [UIDNEXT 16] The next unique identifier value
56:51.67 < BPEB2 OK [READ-ONLY] EXAMINE completed.
56:51.67 > BPEB3 STATUS unsub (MESSAGES UNSEEN)
56:51.89 < * STATUS unsub (MESSAGES 2 UNSEEN 1)
56:51.89 < BPEB3 OK STATUS completed.
Attached is a patch to always issue EXAMINE before a STATUS.
It doesn't seem like it has to be done before every STATUS, just at least once.
Is only a proof of concept. I don't presume to know the best way to handle
optimizing it.
[1] https://bugs.debian.org/830889
The first argument for the function initialize_gnutls is an intptr_t
so wmbiff fails to build from source. This patch changes the current
int to intptr_t.
Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
There's no need to keep autogenerated files in
repository. Those dockapps which use autotoold must be
autoreconf'ed prior to build, those which use imake must be
xmkmf'ed. As of wmbiff, AC_PATH_XTRA_CORRECTED was a hack to
avoid bug in older autoconf version, which is no longer needed
(it's 2012 now already).
Signed-off-by: Alexey I. Froloff <raorn@raorn.name>