Merge pull request #199995 from wentasah/isync-fix-small-buffer

isync: Fix "Buffer too small" error
This commit is contained in:
Artturi 2022-11-08 06:26:20 +02:00 committed by GitHub
commit 68b9289438
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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 ];