Introduce constant for nesting limit in LayoutTest

This commit is contained in:
Martin Dindoffer 2022-05-06 15:01:39 +02:00 committed by Vaci
parent 529a3daa6f
commit 58c906f555

View file

@ -7,6 +7,9 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
public class LayoutTest { public class LayoutTest {
private static final int MAX_NESTING_LIMIT = 0x7fffffff;
private class BareStructReader implements StructReader.Factory<StructReader> { private class BareStructReader implements StructReader.Factory<StructReader> {
@Override @Override
public StructReader constructReader(SegmentReader segment, int data, int pointers, int dataSize, short pointerCount, int nestingLimit) { public StructReader constructReader(SegmentReader segment, int data, int pointers, int dataSize, short pointerCount, int nestingLimit) {
@ -25,7 +28,7 @@ public class LayoutTest {
ReaderArena arena = new ReaderArena(new ByteBuffer[]{ buffer }, 0x7fffffffffffffffL); ReaderArena arena = new ReaderArena(new ByteBuffer[]{ buffer }, 0x7fffffffffffffffL);
StructReader reader = WireHelpers.readStructPointer(new BareStructReader(), arena.tryGetSegment(0), null,0, null, 0, 0x7fffffff); StructReader reader = WireHelpers.readStructPointer(new BareStructReader(), arena.tryGetSegment(0), null, 0, null, 0, MAX_NESTING_LIMIT);
Assert.assertEquals(reader._getLongField(0), 0xefcdab8967452301L); Assert.assertEquals(reader._getLongField(0), 0xefcdab8967452301L);
Assert.assertEquals(reader._getLongField(1), 0L); Assert.assertEquals(reader._getLongField(1), 0L);
@ -83,7 +86,7 @@ public class LayoutTest {
ReaderArena arena = new ReaderArena(new ByteBuffer[]{ buffer }, 0x7fffffffffffffffL); ReaderArena arena = new ReaderArena(new ByteBuffer[]{ buffer }, 0x7fffffffffffffffL);
StructReader reader = WireHelpers.readStructPointer(new BareStructReader(), arena.tryGetSegment(0), null, 0, null, 0, 0x7fffffff); StructReader reader = WireHelpers.readStructPointer(new BareStructReader(), arena.tryGetSegment(0), null, 0, null, 0, MAX_NESTING_LIMIT);
} }
@ -111,7 +114,7 @@ public class LayoutTest {
ReaderArena arena = new ReaderArena(new ByteBuffer[]{buffer}, 0x7fffffffffffffffL); ReaderArena arena = new ReaderArena(new ByteBuffer[]{buffer}, 0x7fffffffffffffffL);
ListReader reader = WireHelpers.readListPointer(new BareListReader(), arena.tryGetSegment(0), 0, null, 0, (byte) 0, 0x7fffffff); ListReader reader = WireHelpers.readListPointer(new BareListReader(), arena.tryGetSegment(0), 0, null, 0, (byte) 0, MAX_NESTING_LIMIT);
} }
private class BareStructBuilder implements StructBuilder.Factory<StructBuilder> { private class BareStructBuilder implements StructBuilder.Factory<StructBuilder> {