--- a/base/sbcp.c.orig	2020-03-19 09:21:42.000000000 +0100
+++ b/base/sbcp.c	2023-04-03 12:36:26.024927229 +0200
@@ -50,6 +50,14 @@ s_xBCPE_process(stream_state * st, strea
         byte ch = *++p;
 
         if (ch <= 31 && escaped[ch]) {
+            /* Make sure we have space to store two characters in the write buffer,
+             * if we don't then exit without consuming the input character, we'll process
+             * that on the next time round.
+             */
+            if (pw->limit - q < 2) {
+                p--;
+                break;
+            }
             if (p == rlimit) {
                 p--;
                 break;
