From 62d4d33f71b17829f63d408ebe0f4c5eb560307e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 12 Sep 2026 09:52:19 +0100 Subject: Handle missing complex field start characters --- lib/docx/body-reader.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib') diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index 2ec9d0d..2c2a741 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -169,6 +169,12 @@ function BodyReader(options) { complexFieldStack.push({type: "begin", fldChar: element}); currentInstrText = []; } else if (type === "end") { + if (complexFieldStack.length === 0) { + return emptyResultWithMessages([warning( + "ignoring complex field end character without corresponding start character" + )]); + } + var complexFieldEnd = complexFieldStack.pop(); if (complexFieldEnd.type === "begin") { complexFieldEnd = parseCurrentInstrText(complexFieldEnd); @@ -179,6 +185,12 @@ function BodyReader(options) { })); } } else if (type === "separate") { + if (complexFieldStack.length === 0) { + return emptyResultWithMessages([warning( + "ignoring complex field separator character without corresponding start character" + )]); + } + var complexFieldSeparate = complexFieldStack.pop(); var complexField = parseCurrentInstrText(complexFieldSeparate); complexFieldStack.push(complexField); -- cgit v1.2.3