ProtobufSerializer throws InvalidProtocolBufferException when dictionary depth > 100
dylon opened this issue · 1 comments
dylon commented
When the dictionary depth is greater than 100, the default behavior of protobuf's CodedInputStream is to throw an exception. The recursion depth limit needs to be increased, probably to Integer.MAX_VALUE.
dylon commented
com.google.protobuf.InvalidProtocolBufferException: Protocol message had too many levels of nesting. May be malicious. Use CodedInputStream.setRecursionLimit() to increase the depth limit.
at com.google.protobuf.InvalidProtocolBufferException.recursionLimitExceeded(InvalidProtocolBufferException.java:104)
at com.google.protobuf.CodedInputStream.readMessage(CodedInputStream.java:491)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$Edge.<init>(LibLevenshteinProtos.java:195)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$Edge.<init>(LibLevenshteinProtos.java:149)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$Edge$1.parsePartialFrom(LibLevenshteinProtos.java:657)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$Edge$1.parsePartialFrom(LibLevenshteinProtos.java:651)
at com.google.protobuf.CodedInputStream.readMessage(CodedInputStream.java:495)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode.<init>(LibLevenshteinProtos.java:94)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode.<init>(LibLevenshteinProtos.java:47)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$1.parsePartialFrom(LibLevenshteinProtos.java:1284)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$1.parsePartialFrom(LibLevenshteinProtos.java:1278)
at com.google.protobuf.CodedInputStream.readMessage(CodedInputStream.java:495)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$Edge.<init>(LibLevenshteinProtos.java:195)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$Edge.<init>(LibLevenshteinProtos.java:149)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$Edge$1.parsePartialFrom(LibLevenshteinProtos.java:657)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode$Edge$1.parsePartialFrom(LibLevenshteinProtos.java:651)
at com.google.protobuf.CodedInputStream.readMessage(CodedInputStream.java:495)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode.<init>(LibLevenshteinProtos.java:94)
at com.github.dylon.liblevenshtein.levenshtein.LibLevenshteinProtos$DawgNode.<init>(LibLevenshteinProtos.java:47)
...