aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/flatrpc/flatrpc.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-06-04 12:55:39 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-06-05 09:08:39 +0000
commite2dee74923d168c188f25fb11f1e254fdc759e93 (patch)
treee58239b8e474ee161ddb6ac3c23c24cbfd8249e5 /pkg/flatrpc/flatrpc.go
parent3623b56060a97ba5ae6e4ba25db127e58ad0e6be (diff)
pkg/flatrpc: send parameters to the fuzzer in RPC
When we rewrite syz-fuzzer in C++ flag parsing will be painful, so send as many parameters to syz-fuzzer in RPC rather than as flags.
Diffstat (limited to 'pkg/flatrpc/flatrpc.go')
-rw-r--r--pkg/flatrpc/flatrpc.go86
1 files changed, 70 insertions, 16 deletions
diff --git a/pkg/flatrpc/flatrpc.go b/pkg/flatrpc/flatrpc.go
index 8a6827e38..9fbd2d0ae 100644
--- a/pkg/flatrpc/flatrpc.go
+++ b/pkg/flatrpc/flatrpc.go
@@ -488,6 +488,9 @@ func ConnectRequestRawEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
}
type ConnectReplyRawT struct {
+ Debug bool `json:"debug"`
+ Procs int32 `json:"procs"`
+ Slowdown int32 `json:"slowdown"`
LeakFrames []string `json:"leak_frames"`
RaceFrames []string `json:"race_frames"`
Features Feature `json:"features"`
@@ -552,6 +555,9 @@ func (t *ConnectReplyRawT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffse
globsOffset = builder.EndVector(globsLength)
}
ConnectReplyRawStart(builder)
+ ConnectReplyRawAddDebug(builder, t.Debug)
+ ConnectReplyRawAddProcs(builder, t.Procs)
+ ConnectReplyRawAddSlowdown(builder, t.Slowdown)
ConnectReplyRawAddLeakFrames(builder, leakFramesOffset)
ConnectReplyRawAddRaceFrames(builder, raceFramesOffset)
ConnectReplyRawAddFeatures(builder, t.Features)
@@ -561,6 +567,9 @@ func (t *ConnectReplyRawT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffse
}
func (rcv *ConnectReplyRaw) UnPackTo(t *ConnectReplyRawT) {
+ t.Debug = rcv.Debug()
+ t.Procs = rcv.Procs()
+ t.Slowdown = rcv.Slowdown()
leakFramesLength := rcv.LeakFramesLength()
t.LeakFrames = make([]string, leakFramesLength)
for j := 0; j < leakFramesLength; j++ {
@@ -620,9 +629,45 @@ func (rcv *ConnectReplyRaw) Table() flatbuffers.Table {
return rcv._tab
}
-func (rcv *ConnectReplyRaw) LeakFrames(j int) []byte {
+func (rcv *ConnectReplyRaw) Debug() bool {
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
if o != 0 {
+ return rcv._tab.GetBool(o + rcv._tab.Pos)
+ }
+ return false
+}
+
+func (rcv *ConnectReplyRaw) MutateDebug(n bool) bool {
+ return rcv._tab.MutateBoolSlot(4, n)
+}
+
+func (rcv *ConnectReplyRaw) Procs() int32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
+ if o != 0 {
+ return rcv._tab.GetInt32(o + rcv._tab.Pos)
+ }
+ return 0
+}
+
+func (rcv *ConnectReplyRaw) MutateProcs(n int32) bool {
+ return rcv._tab.MutateInt32Slot(6, n)
+}
+
+func (rcv *ConnectReplyRaw) Slowdown() int32 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
+ if o != 0 {
+ return rcv._tab.GetInt32(o + rcv._tab.Pos)
+ }
+ return 0
+}
+
+func (rcv *ConnectReplyRaw) MutateSlowdown(n int32) bool {
+ return rcv._tab.MutateInt32Slot(8, n)
+}
+
+func (rcv *ConnectReplyRaw) LeakFrames(j int) []byte {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(10))
+ if o != 0 {
a := rcv._tab.Vector(o)
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j*4))
}
@@ -630,7 +675,7 @@ func (rcv *ConnectReplyRaw) LeakFrames(j int) []byte {
}
func (rcv *ConnectReplyRaw) LeakFramesLength() int {
- o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(10))
if o != 0 {
return rcv._tab.VectorLen(o)
}
@@ -638,7 +683,7 @@ func (rcv *ConnectReplyRaw) LeakFramesLength() int {
}
func (rcv *ConnectReplyRaw) RaceFrames(j int) []byte {
- o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(12))
if o != 0 {
a := rcv._tab.Vector(o)
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j*4))
@@ -647,7 +692,7 @@ func (rcv *ConnectReplyRaw) RaceFrames(j int) []byte {
}
func (rcv *ConnectReplyRaw) RaceFramesLength() int {
- o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(12))
if o != 0 {
return rcv._tab.VectorLen(o)
}
@@ -655,7 +700,7 @@ func (rcv *ConnectReplyRaw) RaceFramesLength() int {
}
func (rcv *ConnectReplyRaw) Features() Feature {
- o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(14))
if o != 0 {
return Feature(rcv._tab.GetUint64(o + rcv._tab.Pos))
}
@@ -663,11 +708,11 @@ func (rcv *ConnectReplyRaw) Features() Feature {
}
func (rcv *ConnectReplyRaw) MutateFeatures(n Feature) bool {
- return rcv._tab.MutateUint64Slot(8, uint64(n))
+ return rcv._tab.MutateUint64Slot(14, uint64(n))
}
func (rcv *ConnectReplyRaw) Files(j int) []byte {
- o := flatbuffers.UOffsetT(rcv._tab.Offset(10))
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(16))
if o != 0 {
a := rcv._tab.Vector(o)
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j*4))
@@ -676,7 +721,7 @@ func (rcv *ConnectReplyRaw) Files(j int) []byte {
}
func (rcv *ConnectReplyRaw) FilesLength() int {
- o := flatbuffers.UOffsetT(rcv._tab.Offset(10))
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(16))
if o != 0 {
return rcv._tab.VectorLen(o)
}
@@ -684,7 +729,7 @@ func (rcv *ConnectReplyRaw) FilesLength() int {
}
func (rcv *ConnectReplyRaw) Globs(j int) []byte {
- o := flatbuffers.UOffsetT(rcv._tab.Offset(12))
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(18))
if o != 0 {
a := rcv._tab.Vector(o)
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j*4))
@@ -693,7 +738,7 @@ func (rcv *ConnectReplyRaw) Globs(j int) []byte {
}
func (rcv *ConnectReplyRaw) GlobsLength() int {
- o := flatbuffers.UOffsetT(rcv._tab.Offset(12))
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(18))
if o != 0 {
return rcv._tab.VectorLen(o)
}
@@ -701,31 +746,40 @@ func (rcv *ConnectReplyRaw) GlobsLength() int {
}
func ConnectReplyRawStart(builder *flatbuffers.Builder) {
- builder.StartObject(5)
+ builder.StartObject(8)
+}
+func ConnectReplyRawAddDebug(builder *flatbuffers.Builder, debug bool) {
+ builder.PrependBoolSlot(0, debug, false)
+}
+func ConnectReplyRawAddProcs(builder *flatbuffers.Builder, procs int32) {
+ builder.PrependInt32Slot(1, procs, 0)
+}
+func ConnectReplyRawAddSlowdown(builder *flatbuffers.Builder, slowdown int32) {
+ builder.PrependInt32Slot(2, slowdown, 0)
}
func ConnectReplyRawAddLeakFrames(builder *flatbuffers.Builder, leakFrames flatbuffers.UOffsetT) {
- builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(leakFrames), 0)
+ builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(leakFrames), 0)
}
func ConnectReplyRawStartLeakFramesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func ConnectReplyRawAddRaceFrames(builder *flatbuffers.Builder, raceFrames flatbuffers.UOffsetT) {
- builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(raceFrames), 0)
+ builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(raceFrames), 0)
}
func ConnectReplyRawStartRaceFramesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func ConnectReplyRawAddFeatures(builder *flatbuffers.Builder, features Feature) {
- builder.PrependUint64Slot(2, uint64(features), 0)
+ builder.PrependUint64Slot(5, uint64(features), 0)
}
func ConnectReplyRawAddFiles(builder *flatbuffers.Builder, files flatbuffers.UOffsetT) {
- builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(files), 0)
+ builder.PrependUOffsetTSlot(6, flatbuffers.UOffsetT(files), 0)
}
func ConnectReplyRawStartFilesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func ConnectReplyRawAddGlobs(builder *flatbuffers.Builder, globs flatbuffers.UOffsetT) {
- builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(globs), 0)
+ builder.PrependUOffsetTSlot(7, flatbuffers.UOffsetT(globs), 0)
}
func ConnectReplyRawStartGlobsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)