Steffen Nurpmeso wrote:

> I cannot reproduce it at a glance via AlpineLinux:
> [...]
> It seems i have to boot my NetBSD 8 VM, it could be that the fix
> takes until tomorrow, thus.  (Very slow, dependent on how weird it
> is...)

I forgot to mention that I use s-nail with torify, but the same seems
to happen without it. Also it's not the same all the time: I reconnected
with `dhclient -r`, then the usual wpa_supplicant+dhclient thing, s-nail
just hanged after "G":

--
^C
Interrupting this operation may turn the DNS resolver unusable
^Cs-nail interrupted
Interrupt
There are new messages in the error [...]
[...]
ERROR# ? q
Held messages in [my inbox]
[1] Segmentation fault (core dumped) s-nail
--

Maybe make flags should be noted [shameless stolen from the APKBUILD]:
VAL_IDNA=idn
VAL_RANDOM="libgetrandom sysgetrandom urandom builtin"

There are patches also used, I am attaching them, though they don't seem
to be related to the issue, and they don't exist in aports. Should I
remove them?

Thanks, Steffen!

--
caóc
---- a/mime.c 2018-03-09 20:24:35.737754669 +0100
-+++ b/mime.c 2018-03-09 20:24:39.107748465 +0100
-_at_@ -678,7 +678,6 @@ mime_write_tohdr_a(struct str *in, FILE
-       xin.l = PTR2SIZE(cp - lastcp);
-       if ((sz = a_mime__convhdra(&xin, f, colp, msh)) < 0)
-          goto jleave;
--      xin.s[xin.l] = '<';
-       lastcp = cp;
-    } else {
-       cp = lastcp;
+diff --git a/obs-imap.c b/obs-imap.c
+index 95692bd2..d403078b 100644
+--- a/obs-imap.c
++++ b/obs-imap.c
+@@ -246,10 +246,9 @@ static enum okay  imap_list(struct mailbox *mp, const char *base, int strip,
+ static enum okay  imap_copy1(struct mailbox *mp, struct message *m, int n,
+                      const char *name);
+ static enum okay  imap_copyuid_parse(const char *cp,
+-                     unsigned long *uidvalidity, unsigned long *olduid,
+-                     unsigned long *newuid);
++                     ui64_t *uidvalidity, ui64_t *olduid, ui64_t *newuid);
+ static enum okay  imap_appenduid_parse(const char *cp,
+-                     unsigned long *uidvalidity, unsigned long *uid);
++                     ui64_t *uidvalidity, ui64_t *uid);
+ static enum okay  imap_copyuid(struct mailbox *mp, struct message *m,
+                      const char *name);
+ static enum okay  imap_appenduid(struct mailbox *mp, FILE *fp, time_t t,
+@@ -3465,16 +3464,16 @@ imap_copy(struct message *m, int n, const char *name)
+ }
+ 
+ static enum okay
+-imap_copyuid_parse(const char *cp, unsigned long *uidvalidity,
+-   unsigned long *olduid, unsigned long *newuid)
++imap_copyuid_parse(const char *cp, ui64_t *uidvalidity, ui64_t *olduid,
++   ui64_t *newuid)
+ {
+-   char *xp, *yp, *zp;
++   char const *xp, *yp, *zp;
+    enum okay rv;
+    NYD_ENTER;
+ 
+-   *uidvalidity = strtoul(cp, &xp, 10);
+-   *olduid = strtoul(xp, &yp, 10);
+-   *newuid = strtoul(yp, &zp, 10);
++   n_idec_ui64_cp(uidvalidity, cp, 10, &xp); /* TODO errors */
++   n_idec_ui64_cp(olduid, xp, 10, &yp); /* TODO errors */
++   n_idec_ui64_cp(newuid, yp, 10, &zp); /* TODO errors */
+    rv = (*uidvalidity && *olduid && *newuid && xp > cp && *xp == ' ' &&
+       yp > xp && *yp == ' ' && zp > yp && *zp == ']');
+    NYD_LEAVE;
+@@ -3482,15 +3481,14 @@ imap_copyuid_parse(const char *cp, unsigned long *uidvalidity,
+ }
+ 
+ static enum okay
+-imap_appenduid_parse(const char *cp, unsigned long *uidvalidity,
+-   unsigned long *uid)
++imap_appenduid_parse(const char *cp, ui64_t *uidvalidity, ui64_t *uid)
+ {
+-   char *xp, *yp;
++   char const *xp, *yp;
+    enum okay rv;
+    NYD_ENTER;
+ 
+-   *uidvalidity = strtoul(cp, &xp, 10);
+-   *uid = strtoul(xp, &yp, 10);
++   n_idec_ui64_cp(uidvalidity, cp, 10, &xp); /* TODO errors */
++   n_idec_ui64_cp(uid, xp, 10, &yp); /* TODO errors */
+    rv = (*uidvalidity && *uid && xp > cp && *xp == ' ' && yp > xp &&
+       *yp == ']');
+    NYD_LEAVE;

Reply via email to