Repository navigation
Expand file tree
/
Copy pathfuzz_test.go
More file actions
61 lines (55 loc) · 1.76 KB
/
Copy pathfuzz_test.go
File metadata and controls
61 lines (55 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package orbbec
import (
"encoding/binary"
"testing"
)
// 解析器收到畸形数据只能报错,不能 panic。
func FuzzParseRTP(f *testing.F) {
f.Add([]byte{0x80, 0xe1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3})
f.Add([]byte{0xb0, 0x61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 3, 2})
f.Fuzz(func(t *testing.T, b []byte) { _, _ = parseRTP(b) })
}
func FuzzJPEG(f *testing.F) {
f.Add([]byte{0xFF, 0xD8, 0xFF, 0xFE, 0, 0})
f.Add([]byte{0xFF, 0xD8, 0xFF, 0xFE, 0, 1})
f.Add(append([]byte{0xFF, 0xD8, 0xFF, 0xFE, 0, 10}, []byte("ORBBEC12")...))
f.Add([]byte{0xFF, 0xD8, 0xFF, 0xDA, 0, 2, 0xFF, 0xD9})
f.Fuzz(func(t *testing.T, b []byte) {
_ = jpegMetadata(b)
_ = ensureHuffmanTables(b)
d := &jpegDepay{}
if _, err := d.depay(rtpPacket{payload: b}, true); err == nil {
_ = d.finish(b)
}
_, _ = d.depay(rtpPacket{payload: b}, false)
})
}
func FuzzVendorFrame(f *testing.F) {
hdr := make([]byte, vendorFrameHeaderSize)
binary.LittleEndian.PutUint16(hdr[8:], 300)
f.Add(hdr)
f.Add(append(hdr, make([]byte, 400)...))
f.Fuzz(func(t *testing.T, b []byte) {
if _, md, data, err := splitVendorFrame(b); err == nil {
_, _ = ParseFrameMetadata(md, true)
_, _ = decodeY16(data, 4, 3, 0.2)
}
})
}
func FuzzGVCPAndCalib(f *testing.F) {
f.Add([]byte{0, 0, 0, 3, 0, 0, 0, 1})
f.Add(fixtureAlignCalib())
f.Add(fixtureD2CList())
f.Add(fixtureEffectiveProfiles())
f.Fuzz(func(t *testing.T, b []byte) {
_, _ = parseDiscoveryAck(b)
_, _ = parseVersionInfo(b)
_ = parseDepthCalibList(b)
c := Calibration{align: parseAlignCalibList(b), d2c: parseD2CProfileList(b)}
_, _ = c.DepthIntrinsics(1280, 800)
_, _ = c.ColorIntrinsics(640, 400)
_ = parseEffectiveProfiles(b)
_, _, _ = parseSDP(string(b))
_ = firmwareVersionInt(string(b))
})
}