--- alpine-2.00/imap/src/c-client/rfc822.c +++ alpine-2.00/imap/src/c-client/rfc822.c @@ -1351,6 +1351,7 @@ static long rfc822_output_char (RFC822BUFFER *buf,int c) { + if ((buf->cur == buf->end) && !rfc822_output_flush (buf)) return NIL; *buf->cur++ = c; /* add character, soutr buffer if full */ return (buf->cur == buf->end) ? rfc822_output_flush (buf) : LONGT; } @@ -1374,7 +1375,8 @@ len -= i; } /* soutr buffer now if full */ - if (len && !rfc822_output_flush (buf)) return NIL; + if ((len || (buf->cur == buf->end)) && !rfc822_output_flush (buf)) + return NIL; } return LONGT; }