diff --git a/src/conio/cterm.c b/src/conio/cterm.c
index 884b5ff72407c28f6558b8fa75bfafc4d5e75d8c..4e6334072eb2c9b55bc4fa4d5e160df018fdf1d1 100644
--- a/src/conio/cterm.c
+++ b/src/conio/cterm.c
@@ -5615,12 +5615,14 @@ CIOLIBEXPORT char* cterm_write(struct cterminal * cterm, const void *vbuf, int b
 										if (cterm->strbufsize > 1024 * 1024 * 512) {
 											FREE_AND_NULL(cterm->strbuf);
 											cterm->strbuflen = cterm->strbufsize = 0;
+											break;
 										}
 										else {
 											p = realloc(cterm->strbuf, cterm->strbufsize);
 											if (p == NULL) {
 												FREE_AND_NULL(cterm->strbuf);
 												cterm->strbuflen = cterm->strbufsize = 0;
+												break;
 											}
 											else
 												cterm->strbuf = p;