<pre style='margin:0'>
tobypeterson pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/3c330b642d0dc8fde9249f4bb456713d2c4d5134">https://github.com/macports/macports-ports/commit/3c330b642d0dc8fde9249f4bb456713d2c4d5134</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 3c330b642d0 isync: Fix crash on 0-size messages on IMAP
</span>3c330b642d0 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 3c330b642d0dc8fde9249f4bb456713d2c4d5134
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Mon Jan 6 15:50:08 2025 +0100
<span style='display:block; white-space:pre;color:#404040;'> isync: Fix crash on 0-size messages on IMAP
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Backport a patch already applied upstream that fixes this. Notably,
</span><span style='display:block; white-space:pre;color:#404040;'> attempting to sync a [Gmail]/Chats folder from GMail triggers this.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> While at it, remove the platforms line, that re-specifies the default.
</span>---
mail/isync/Portfile | 6 +-
...0001-accept-zero-sized-messages-from-IMAP.patch | 77 ++++++++++++++++++++++
2 files changed, 80 insertions(+), 3 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/isync/Portfile b/mail/isync/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index f594bcffcd9..2011a2e1e55 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/isync/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/isync/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,9 +4,8 @@ PortSystem 1.0
</span>
name isync
version 1.5.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> categories mail
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms darwin
</span> license GPL-2
maintainers {gmail.com:emanuele.giaquinta @exg} openmaintainer
description command line utility to synchronize mailboxes
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -38,7 +37,8 @@ startupitem.name mbsync
</span> # Patch the sample configuration to use MacPorts certificates and
# drv_proxy_gen.pl to use MacPorts perl for building on OS X 10.8 and
# earlier: https://sourceforge.net/p/isync/bugs/37/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles patch-paths.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-paths.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0001-accept-zero-sized-messages-from-IMAP.patch
</span>
post-extract {
xinstall -m 644 -W ${filespath} mbsync.plist ${worksrcpath}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/isync/files/0001-accept-zero-sized-messages-from-IMAP.patch b/mail/isync/files/0001-accept-zero-sized-messages-from-IMAP.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e7d9ce78c57
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/isync/files/0001-accept-zero-sized-messages-from-IMAP.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,77 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 15c7e02e4a5fe127bd55bce2b9aa63a5da8eb228 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Oswald Buddenhagen <ossi@users.sf.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 24 Nov 2024 13:11:32 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] accept zero-sized messages from IMAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+while such a thing is rather pointless, completely empty messages are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+not forbidden. consequently, we should be able to deal with them, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+above all not crash.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Upstream-Status: Backport [https://sourceforge.net/p/isync/isync/ci/15c7e02e4a5fe127bd55bce2b9aa63a5da8eb228/]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/drv_imap.c | 5 ++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/socket.c | 1 -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/util.c | 5 +++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 9 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/drv_imap.c b/src/drv_imap.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1280e3c..b0be1fd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./src/drv_imap.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./src/drv_imap.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -780,6 +780,8 @@ parse_imap_list( imap_store_t *ctx, char **sp, parse_list_state_t *sts )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (sts->callback->atom( ctx, NULL, bytes, AtomChunkedLiteral ) != LIST_OK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto bail;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sts->in_literal = ChunkedLiteral;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!bytes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ goto nobytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sts->big_literal = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ get_chunked:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ n = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -806,7 +808,7 @@ parse_imap_list( imap_store_t *ctx, char **sp, parse_list_state_t *sts )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (DFlags & DEBUG_NET_ALL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf( "%s=========\n", ctx->label );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fwrite( p, n, 1, stdout );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (p[n - 1] != '\n')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (n && p[n - 1] != '\n')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fputs( "\n(no-nl) ", stdout );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf( "%s=========\n", ctx->label );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -819,6 +821,7 @@ parse_imap_list( imap_store_t *ctx, char **sp, parse_list_state_t *sts )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bytes -= n;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (bytes > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto postpone;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nobytes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (sts->in_literal == ChunkedLiteral && sts->callback->atom( ctx, NULL, 0, AtomLiteral ) != LIST_OK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto bail;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ getline:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/socket.c b/src/socket.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index afd3f18..1ef0e95 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./src/socket.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./src/socket.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -952,7 +952,6 @@ socket_expect_bytes( conn_t *conn, uint len )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ socket_read( conn_t *conn, uint min_len, uint max_len, uint *out_len )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- assert( min_len > 0 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert( min_len <= sizeof(conn->buf) );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert( min_len <= max_len );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/util.c b/src/util.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e697cfb..121ab0a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./src/util.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./src/util.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -637,6 +637,11 @@ nfmalloc( size_t sz )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __GLIBC__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // The C standard allows NULL returns for zero-sized allocations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!sz)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sz = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!(ret = malloc( sz )))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ oom();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>