Skip to content

Commit 239b64a

Browse files
committed
check for min value for entity exapantion options
1 parent 61cb666 commit 239b64a

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/xmlparser/DocTypeReader.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default class DocTypeReader {
2828
[entityName, val, i] = this.readEntityExp(xmlData, i + 1, this.suppressValidationErr);
2929
if (val.indexOf("&") === -1) { //Parameter entities are not supported
3030
if (this.options.enabled !== false &&
31-
this.options.maxEntityCount &&
31+
this.options.maxEntityCount != null &&
3232
entityCount >= this.options.maxEntityCount) {
3333
throw new Error(
3434
`Entity count (${entityCount + 1}) exceeds maximum allowed (${this.options.maxEntityCount})`
@@ -126,7 +126,7 @@ export default class DocTypeReader {
126126

127127
// Validate entity size
128128
if (this.options.enabled !== false &&
129-
this.options.maxEntitySize &&
129+
this.options.maxEntitySize != null &&
130130
entityValue.length > this.options.maxEntitySize) {
131131
throw new Error(
132132
`Entity "${entityName}" size (${entityValue.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`

src/xmlparser/OptionsBuilder.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ function normalizeProcessEntities(value) {
103103
// Object config - merge with defaults
104104
if (typeof value === 'object' && value !== null) {
105105
return {
106-
enabled: value.enabled !== false, // default true if not specified
107-
maxEntitySize: value.maxEntitySize ?? 10000,
108-
maxExpansionDepth: value.maxExpansionDepth ?? 10,
109-
maxTotalExpansions: value.maxTotalExpansions ?? 1000,
110-
maxExpandedLength: value.maxExpandedLength ?? 100000,
111-
maxEntityCount: value.maxEntityCount ?? 100,
106+
enabled: value.enabled !== false,
107+
maxEntitySize: Math.max(1, value.maxEntitySize ?? 10000),
108+
maxExpansionDepth: Math.max(1, value.maxExpansionDepth ?? 10),
109+
maxTotalExpansions: Math.max(1, value.maxTotalExpansions ?? 1000),
110+
maxExpandedLength: Math.max(1, value.maxExpandedLength ?? 100000),
111+
maxEntityCount: Math.max(1, value.maxEntityCount ?? 100),
112112
allowedTags: value.allowedTags ?? null,
113113
tagFilter: value.tagFilter ?? null
114114
};

0 commit comments

Comments
 (0)