Skip to content

Commit f9b0114

Browse files
committed
Increased limition of element sizes of unpacked array and map objects
1 parent a9b3d25 commit f9b0114

File tree

2 files changed

+2
-170
lines changed

2 files changed

+2
-170
lines changed

src/main/java/org/msgpack/unpacker/AbstractUnpacker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ public abstract class AbstractUnpacker implements Unpacker {
2929

3030
protected int rawSizeLimit = 134217728;
3131

32-
protected int arraySizeLimit = 65536;
32+
protected int arraySizeLimit = 4194304;
3333

34-
protected int mapSizeLimit = 4096;
34+
protected int mapSizeLimit = 2097152;
3535

3636
protected AbstractUnpacker(MessagePack msgpack) {
3737
this.msgpack = msgpack;

src/test/java/org/msgpack/unpacker/TestSizeLimit.java

Lines changed: 0 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -28,62 +28,6 @@ public class TestSizeLimit {
2828
public void testRawSizeLimit() throws Exception {
2929
MessagePack msgpack = new MessagePack();
3030
Template<byte[]> tmpl = Templates.TByteArray;
31-
{ // default limit = 67108864, size < 67108864
32-
int len = 67108863;
33-
byte[] src = new byte[len];
34-
for (int i = 0; i < len; i++) {
35-
src[i] = 0x0a;
36-
}
37-
38-
ByteArrayOutputStream out = new ByteArrayOutputStream();
39-
Packer packer = msgpack.createPacker(out);
40-
packer.write(src);
41-
byte[] bytes = out.toByteArray();
42-
43-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
44-
byte[] dst = unpacker.read(tmpl);
45-
assertEquals(src.length, dst.length);
46-
}
47-
{ // default limit = 67108864, size == 67108864
48-
int len = 67108864;
49-
byte[] src = new byte[len];
50-
for (int i = 0; i < len; i++) {
51-
src[i] = 0x0a;
52-
}
53-
54-
ByteArrayOutputStream out = new ByteArrayOutputStream();
55-
Packer packer = msgpack.createPacker(out);
56-
packer.write(src);
57-
byte[] bytes = out.toByteArray();
58-
59-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
60-
try {
61-
unpacker.read(tmpl);
62-
fail();
63-
} catch (Throwable t) {
64-
assertTrue(t instanceof SizeLimitException);
65-
}
66-
}
67-
{ // default limit = 67108864, size > 67108864
68-
int len = 67108865;
69-
byte[] src = new byte[len];
70-
for (int i = 0; i < len; i++) {
71-
src[i] = 0x0a;
72-
}
73-
74-
ByteArrayOutputStream out = new ByteArrayOutputStream();
75-
Packer packer = msgpack.createPacker(out);
76-
packer.write(src);
77-
byte[] bytes = out.toByteArray();
78-
79-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
80-
try {
81-
unpacker.read(tmpl);
82-
fail();
83-
} catch (Throwable t) {
84-
assertTrue(t instanceof SizeLimitException);
85-
}
86-
}
8731
{ // set limit == 10, size < 10
8832
int len = 9;
8933
byte[] src = new byte[len];
@@ -301,62 +245,6 @@ public void testRawSizeLimit() throws Exception {
301245
public void testArraySizeLimit() throws Exception {
302246
MessagePack msgpack = new MessagePack();
303247
Template<List<Integer>> tmpl = new ListTemplate<Integer>(Templates.TInteger);
304-
{ // default limit == 4096, size < 4096
305-
int len = 4095;
306-
List<Integer> src = new ArrayList<Integer>(len);
307-
for (int i = 0; i < len; i++) {
308-
src.add(i);
309-
}
310-
311-
ByteArrayOutputStream out = new ByteArrayOutputStream();
312-
Packer packer = msgpack.createPacker(out);
313-
packer.write(src);
314-
byte[] bytes = out.toByteArray();
315-
316-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
317-
List<Integer> dst = unpacker.read(tmpl);
318-
assertEquals(src.size(), dst.size());
319-
}
320-
{ // default limit == 4096, size == 4096
321-
int len = 4096;
322-
List<Integer> src = new ArrayList<Integer>(len);
323-
for (int i = 0; i < len; i++) {
324-
src.add(i);
325-
}
326-
327-
ByteArrayOutputStream out = new ByteArrayOutputStream();
328-
Packer packer = msgpack.createPacker(out);
329-
packer.write(src);
330-
byte[] bytes = out.toByteArray();
331-
332-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
333-
try {
334-
unpacker.read(tmpl);
335-
fail();
336-
} catch (Throwable t) {
337-
assertTrue(t instanceof SizeLimitException);
338-
}
339-
}
340-
{ // default limit == 4096, size > 4096
341-
int len = 4097;
342-
List<Integer> src = new ArrayList<Integer>(len);
343-
for (int i = 0; i < len; i++) {
344-
src.add(i);
345-
}
346-
347-
ByteArrayOutputStream out = new ByteArrayOutputStream();
348-
Packer packer = msgpack.createPacker(out);
349-
packer.write(src);
350-
byte[] bytes = out.toByteArray();
351-
352-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
353-
try {
354-
unpacker.read(tmpl);
355-
fail();
356-
} catch (Throwable t) {
357-
assertTrue(t instanceof SizeLimitException);
358-
}
359-
}
360248
{ // set limit == 10, size < 10
361249
int len = 9;
362250
List<Integer> src = new ArrayList<Integer>(len);
@@ -575,62 +463,6 @@ public void testMapSizeLimit() throws Exception {
575463
MessagePack msgpack = new MessagePack();
576464
Template<Map<Integer, Integer>> tmpl =
577465
new MapTemplate<Integer, Integer>(Templates.TInteger, Templates.TInteger);
578-
{ // default limit == 4096, size < 4096
579-
int len = 4095;
580-
Map<Integer, Integer> src = new HashMap<Integer, Integer>(len);
581-
for (int i = 0; i < len; i++) {
582-
src.put(i, i);
583-
}
584-
585-
ByteArrayOutputStream out = new ByteArrayOutputStream();
586-
Packer packer = msgpack.createPacker(out);
587-
packer.write(src);
588-
byte[] bytes = out.toByteArray();
589-
590-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
591-
Map<Integer, Integer> dst = unpacker.read(tmpl);
592-
assertEquals(src.size(), dst.size());
593-
}
594-
{ // default limit == 4096, size == 4096
595-
int len = 4096;
596-
Map<Integer, Integer> src = new HashMap<Integer, Integer>(len);
597-
for (int i = 0; i < len; i++) {
598-
src.put(i, i);
599-
}
600-
601-
ByteArrayOutputStream out = new ByteArrayOutputStream();
602-
Packer packer = msgpack.createPacker(out);
603-
packer.write(src);
604-
byte[] bytes = out.toByteArray();
605-
606-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
607-
try {
608-
unpacker.read(tmpl);
609-
fail();
610-
} catch (Throwable t) {
611-
assertTrue(t instanceof SizeLimitException);
612-
}
613-
}
614-
{ // default limit == 4096, size > 4096
615-
int len = 4097;
616-
Map<Integer, Integer> src = new HashMap<Integer, Integer>(len);
617-
for (int i = 0; i < len; i++) {
618-
src.put(i, i);
619-
}
620-
621-
ByteArrayOutputStream out = new ByteArrayOutputStream();
622-
Packer packer = msgpack.createPacker(out);
623-
packer.write(src);
624-
byte[] bytes = out.toByteArray();
625-
626-
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
627-
try {
628-
unpacker.read(tmpl);
629-
fail();
630-
} catch (Throwable t) {
631-
assertTrue(t instanceof SizeLimitException);
632-
}
633-
}
634466
{ // set limit == 10, size < 10
635467
int len = 9;
636468
Map<Integer, Integer> src = new HashMap<Integer, Integer>(len);

0 commit comments

Comments
 (0)