isync: Fix "Buffer too small" error

This commit is contained in:
Michal Sojka 2022-11-07 01:07:34 +01:00
parent a2a777538d
commit 24c0592e58
2 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,34 @@
From e8a3a20aed135272a9ec0103f4055411c075f043 Mon Sep 17 00:00:00 2001
From: Michal Sojka <michal.sojka@cvut.cz>
Date: Mon, 7 Nov 2022 00:07:22 +0100
Subject: [PATCH] Increase imap_vprintf buffer size
This fixes "Fatal: buffer too small. Please report a bug." error. See
https://sourceforge.net/p/isync/mailman/isync-devel/thread/87fsevvebj.fsf%40steelpick.2x.cz/#msg37731590
for related discussion.
When using mbsync with XOAUTH2 authentication (needed for Office365
mailboxes), the access token used for the LOGIN command may not fit
into the currently used buffer of 1000 characters. In my case, I need
the buffer to be at least 2000 characters long. To make this more
future-proof, I increase the buffer size to 4000 characters.
---
src/drv_imap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/drv_imap.c b/src/drv_imap.c
index c5a7aed..7847192 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -528,7 +528,7 @@ imap_vprintf( const char *fmt, va_list ap )
uint totlen = 0;
const char *segs[MAX_SEGS];
uint segls[MAX_SEGS];
- char buf[1000];
+ char buf[4000];
d = buf;
ed = d + sizeof(buf);
--
2.38.1

View file

@ -12,6 +12,11 @@ stdenv.mkDerivation rec {
sha256 = "1zq0wwvmqsl9y71546dr0aygzn9gjjfiw19hlcq87s929y4p6ckw";
};
patches = [
# Fixes "Fatal: buffer too small" error
./0001-Increase-imap_vprintf-buffer-size.patch
];
nativeBuildInputs = [ pkg-config perl ];
buildInputs = [ openssl db cyrus_sasl zlib ]
++ lib.optionals stdenv.isDarwin [ Security ];