Skip to content

Commit 25ade37

Browse files
committed
-
1 parent d19fb3b commit 25ade37

File tree

2 files changed

+6
-61
lines changed

2 files changed

+6
-61
lines changed

src/test/java/org/xerial/snappy/fuzz/BitShuffleFuzzer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class BitShuffleFuzzer {
2727

2828
@FuzzTest
2929
public static void fuzzerTestOneInput(FuzzedDataProvider data) {
30-
switch (data.consumeInt(0, 8)) {
30+
switch (data.consumeInt(0, 9)) {
3131
case 0:
3232
fuzzBitshuffle(data.consumeInts(SIZE), BitShuffle::shuffle, BitShuffle::unshuffleIntArray, "int[]");
3333
break;
@@ -55,6 +55,9 @@ public static void fuzzerTestOneInput(FuzzedDataProvider data) {
5555
case 8:
5656
fuzzBitshuffle(new short[0], BitShuffle::shuffle, BitShuffle::unshuffleShortArray, "empty short[]");
5757
break;
58+
case 9:
59+
fuzzBitshuffle(new long[0], BitShuffle::shuffle, BitShuffle::unshuffleLongArray, "empty long[]");
60+
break;
5861
}
5962
}
6063

src/test/java/org/xerial/snappy/fuzz/SnappyCombinedFuzzer.java

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ private static void testFramed(FuzzedDataProvider data) {
263263
}
264264

265265
private static void testCrc32C(FuzzedDataProvider data) {
266-
switch (data.consumeInt(0, 3)) {
266+
switch (data.consumeInt(0, 2)) {
267267
case 0:
268268
runFuzz(() -> {
269269
byte[] input = data.consumeBytes(data.consumeInt(0, 4096));
@@ -304,28 +304,6 @@ private static void testCrc32C(FuzzedDataProvider data) {
304304
}
305305
});
306306
break;
307-
case 3:
308-
runFuzz(() -> {
309-
byte[] input = data.consumeBytes(data.consumeInt(0, 4096));
310-
PureJavaCrc32C crc = new PureJavaCrc32C();
311-
crc.update(input, 0, input.length);
312-
long value = crc.getValue();
313-
byte[] serialized = new byte[12];
314-
serialized[0] = (byte) (value >>> 56);
315-
serialized[1] = (byte) (value >>> 48);
316-
serialized[2] = (byte) (value >>> 40);
317-
serialized[3] = (byte) (value >>> 32);
318-
serialized[4] = (byte) (value >>> 24);
319-
serialized[5] = (byte) (value >>> 16);
320-
serialized[6] = (byte) (value >>> 8);
321-
serialized[7] = (byte) value;
322-
crc.reset();
323-
crc.update(serialized, 0, 8);
324-
if (crc.getValue() != value) {
325-
throw new IllegalStateException("CRC32C serialization roundtrip failed");
326-
}
327-
});
328-
break;
329307
}
330308
}
331309

@@ -496,7 +474,7 @@ private static void testHadoopStream(FuzzedDataProvider data) {
496474
}
497475

498476
private static void testByteBuffer(FuzzedDataProvider data) {
499-
switch (data.consumeInt(0, 3)) {
477+
switch (data.consumeInt(0, 1)) {
500478
case 0:
501479
runFuzz(() -> {
502480
byte[] input = data.consumeBytes(data.consumeInt(0, 4096));
@@ -522,28 +500,6 @@ private static void testByteBuffer(FuzzedDataProvider data) {
522500
});
523501
break;
524502
case 1:
525-
runFuzz(() -> {
526-
byte[] input = data.consumeBytes(data.consumeInt(0, 4096));
527-
ByteBuffer src = ByteBuffer.wrap(input);
528-
ByteBuffer dst = ByteBuffer.allocate(Snappy.maxCompressedLength(input.length));
529-
int compressed = Snappy.compress(src, dst);
530-
531-
dst.limit(compressed);
532-
dst.position(0);
533-
ByteBuffer uncompressedBuf = ByteBuffer.allocate(input.length);
534-
int uncompressed = Snappy.uncompress(dst, uncompressedBuf);
535-
536-
uncompressedBuf.limit(uncompressed);
537-
uncompressedBuf.position(0);
538-
byte[] result = new byte[uncompressed];
539-
uncompressedBuf.get(result);
540-
541-
if (!Arrays.equals(input, result)) {
542-
throw new IllegalStateException("Heap ByteBuffer compress failed");
543-
}
544-
});
545-
break;
546-
case 2:
547503
runFuzz(() -> {
548504
byte[] input = data.consumeBytes(data.consumeInt(0, 4096));
549505
ByteBuffer src = ByteBuffer.allocateDirect(input.length);
@@ -557,20 +513,6 @@ private static void testByteBuffer(FuzzedDataProvider data) {
557513
}
558514
});
559515
break;
560-
case 3:
561-
runFuzz(() -> {
562-
byte[] input = data.consumeBytes(data.consumeInt(0, 4096));
563-
if (input.length > 0) {
564-
ByteBuffer src = ByteBuffer.wrap(input);
565-
ByteBuffer dst = ByteBuffer.allocate(Snappy.maxCompressedLength(input.length));
566-
try {
567-
Snappy.compress(src, dst);
568-
} catch (Exception e) {
569-
// Expected for invalid input during fuzzing
570-
}
571-
}
572-
});
573-
break;
574516
}
575517
}
576518
}

0 commit comments

Comments
 (0)