Skip to content

Commit

Permalink
move some reader checks
Browse files Browse the repository at this point in the history
  • Loading branch information
pjfanning committed Aug 27, 2023
1 parent 3f0c5bc commit d16b08c
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1850,9 +1850,7 @@ protected final String _parseName() throws IOException
if (ch == '"') {
final int start = _inputPtr;
_inputPtr = ptr+1; // to skip the quote
final int len = ptr - start;
_streamReadConstraints.validateNameLength(len);
return _symbols.findSymbol(_inputBuffer, start, len, hash);
return _symbols.findSymbol(_inputBuffer, start, ptr - start, hash);
}
break;
}
Expand Down Expand Up @@ -1915,9 +1913,7 @@ private String _parseName2(int startPtr, int hash, int endChar) throws IOExcepti
final TextBuffer tb = _textBuffer;
final char[] buf = tb.getTextBuffer();
final int start = tb.getTextOffset();
final int len = tb.size();
_streamReadConstraints.validateNameLength(len);
return _symbols.findSymbol(buf, start, len, hash);
return _symbols.findSymbol(buf, start, tb.size(), hash);
}
}

Expand Down Expand Up @@ -1969,16 +1965,12 @@ protected String _handleOddName(int i) throws IOException
if (codes[ch] != 0) {
final int start = _inputPtr-1; // -1 to bring back first char
_inputPtr = ptr;
final int len = ptr - start;
_streamReadConstraints.validateNameLength(len);
return _symbols.findSymbol(_inputBuffer, start, len, hash);
return _symbols.findSymbol(_inputBuffer, start, ptr - start, hash);
}
} else if (!Character.isJavaIdentifierPart((char) ch)) {
final int start = _inputPtr-1; // -1 to bring back first char
_inputPtr = ptr;
final int len = ptr - start;
_streamReadConstraints.validateNameLength(len);
return _symbols.findSymbol(_inputBuffer, start, len, hash);
return _symbols.findSymbol(_inputBuffer, start, ptr - start, hash);
}
hash = (hash * CharsToNameCanonicalizer.HASH_MULT) + ch;
++ptr;
Expand All @@ -2005,9 +1997,7 @@ protected String _parseAposName() throws IOException
if (ch == '\'') {
int start = _inputPtr;
_inputPtr = ptr+1; // to skip the quote
final int len = ptr - start;
_streamReadConstraints.validateNameLength(len);
return _symbols.findSymbol(_inputBuffer, start, len, hash);
return _symbols.findSymbol(_inputBuffer, start, ptr - start, hash);
}
if (ch < maxCode && codes[ch] != 0) {
break;
Expand Down Expand Up @@ -2178,9 +2168,7 @@ private String _handleOddName2(int startPtr, int hash, int[] codes) throws IOExc
final TextBuffer tb = _textBuffer;
final char[] buf = tb.getTextBuffer();
final int start = tb.getTextOffset();
final int len = tb.size();
_streamReadConstraints.validateNameLength(len);
return _symbols.findSymbol(buf, start, len, hash);
return _symbols.findSymbol(buf, start, tb.size(), hash);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,7 @@ public String findSymbol(char[] buffer, int start, int len, int h) throws IOExce
if (len < 1) { // empty Strings are simplest to handle up front
return "";
}
_streamReadConstraints.validateNameLength(len);
if (!_canonicalize) { // [JACKSON-259]
return new String(buffer, start, len);
}
Expand Down

0 comments on commit d16b08c

Please sign in to comment.