diff --git a/ion/src/main/java/com/fasterxml/jackson/dataformat/ion/IonParser.java b/ion/src/main/java/com/fasterxml/jackson/dataformat/ion/IonParser.java index 8f21bdda4..94c0f7092 100644 --- a/ion/src/main/java/com/fasterxml/jackson/dataformat/ion/IonParser.java +++ b/ion/src/main/java/com/fasterxml/jackson/dataformat/ion/IonParser.java @@ -516,9 +516,11 @@ public JsonToken nextToken() throws IOException // also, when starting array/object, need to create new context if (_currToken == JsonToken.START_OBJECT) { _parsingContext = _parsingContext.createChildObjectContext(-1, -1); + streamReadConstraints().validateNestingDepth(_parsingContext.getNestingDepth()); _reader.stepIn(); } else if (_currToken == JsonToken.START_ARRAY) { _parsingContext = _parsingContext.createChildArrayContext(-1, -1); + streamReadConstraints().validateNestingDepth(_parsingContext.getNestingDepth()); _reader.stepIn(); } diff --git a/protobuf/src/main/java/com/fasterxml/jackson/dataformat/protobuf/ProtobufParser.java b/protobuf/src/main/java/com/fasterxml/jackson/dataformat/protobuf/ProtobufParser.java index 5dcc3b21e..58357d01b 100644 --- a/protobuf/src/main/java/com/fasterxml/jackson/dataformat/protobuf/ProtobufParser.java +++ b/protobuf/src/main/java/com/fasterxml/jackson/dataformat/protobuf/ProtobufParser.java @@ -584,6 +584,7 @@ public JsonToken nextToken() throws IOException case STATE_ARRAY_START: _parsingContext = _parsingContext.createChildArrayContext(_currentField); + streamReadConstraints().validateNestingDepth(_parsingContext.getNestingDepth()); _state = STATE_ARRAY_VALUE_FIRST; return (_currToken = JsonToken.START_ARRAY); @@ -601,6 +602,7 @@ public JsonToken nextToken() throws IOException } _currentEndOffset = newEnd; _parsingContext = _parsingContext.createChildArrayContext(_currentField, newEnd); + streamReadConstraints().validateNestingDepth(_parsingContext.getNestingDepth()); _state = STATE_ARRAY_VALUE_PACKED; return (_currToken = JsonToken.START_ARRAY); @@ -921,6 +923,7 @@ private JsonToken _readNextValue(FieldType t, int nextState) throws IOException _currentEndOffset = newEnd; _state = STATE_NESTED_KEY; _parsingContext = _parsingContext.createChildObjectContext(msg, _currentField, newEnd); + streamReadConstraints().validateNestingDepth(_parsingContext.getNestingDepth()); _currentField = msg.firstField(); } return JsonToken.START_OBJECT;