From 51be3a98205cc900eba6d3cf1962bc42a8de942d Mon Sep 17 00:00:00 2001 From: Andris Reinman Date: Thu, 7 Nov 2024 08:57:50 +0200 Subject: [PATCH] fix(imap): Fixed issue with a single + response --- lib/handler/imap-parser.js | 1 + lib/handler/parser-instance.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/lib/handler/imap-parser.js b/lib/handler/imap-parser.js index 165f4bf..cc0574b 100644 --- a/lib/handler/imap-parser.js +++ b/lib/handler/imap-parser.js @@ -28,6 +28,7 @@ module.exports = async (command, options) => { response.tag = await parser.getTag(); await parser.getSpace(); + response.command = await parser.getCommand(); if (nullBytesRemoved) { diff --git a/lib/handler/parser-instance.js b/lib/handler/parser-instance.js index 8a567a8..956e1b2 100644 --- a/lib/handler/parser-instance.js +++ b/lib/handler/parser-instance.js @@ -119,6 +119,11 @@ class ParserInstance { async getSpace() { if (!this.remainder.length) { + if (this.tag === '+' && this.pos === 1) { + // special case, empty + response + return; + } + let error = new Error(`Unexpected end of input at position ${this.pos} [E4]`); error.code = 'ParserError4'; error.parserContext = { input: this.input, pos: this.pos };