diff --git a/cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java b/cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java index 756b7bea7..d1e32a10d 100644 --- a/cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java +++ b/cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java @@ -2902,9 +2902,9 @@ private final String _findDecodedFromSymbols(final int len) throws IOException // First quadbyte is easy int q1 = (inBuf[inPtr++] & 0xFF); - q1 = (q1 << 8) | (inBuf[inPtr++] & 0xFF); - q1 = (q1 << 8) | (inBuf[inPtr++] & 0xFF); - q1 = (q1 << 8) | (inBuf[inPtr++] & 0xFF); + q1 = (q1 << 8) | (inBuf[inPtr++] & 0xFF); + q1 = (q1 << 8) | (inBuf[inPtr++] & 0xFF); + q1 = (q1 << 8) | (inBuf[inPtr++] & 0xFF); if (len < 9) { int q2 = (inBuf[inPtr++] & 0xFF); @@ -3006,7 +3006,15 @@ private final String _addDecodedToSymbols(int len, String name) { private static int[] _growArrayTo(int[] arr, int minSize) { return Arrays.copyOf(arr, minSize+4); - } + } + + // Helper method needed to fix [dataformats-binary#312], masking of 0x00 character + // 26-Feb-2022, tatu: not yet used + /* + private final static int _padLastQuad(int q, int bytes) { + return (bytes == 4) ? q : (q | (-1 << (bytes << 3))); + } + */ /* /********************************************************** diff --git a/cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/failing/SymbolTable312Test.java b/cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/failing/SymbolTable312Test.java index 607a151b3..13454a385 100644 --- a/cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/failing/SymbolTable312Test.java +++ b/cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/failing/SymbolTable312Test.java @@ -17,7 +17,7 @@ public void testNullHandling() throws Exception final String FIELD3 = FIELD2 + FIELD1; final String QUOTED_NULL = "\\u0000"; - + final String SRC = a2q(String.format("{'%s':'a','%s':'b','%s':'c'}", QUOTED_NULL, QUOTED_NULL+QUOTED_NULL, QUOTED_NULL+QUOTED_NULL+QUOTED_NULL)); byte[] DOC = cborDoc(SRC);