aboutsummaryrefslogtreecommitdiffstats
path: root/syz-manager/snapshot.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-08-13 20:29:15 +0200
committerAleksandr Nogikh <nogikh@google.com>2024-08-14 06:00:45 +0000
commit07a4d4adf03055fcc6a37148e43d3c931eb168d6 (patch)
tree71c9c9e37343e784c784b9aa6dc1e0caca6b1edc /syz-manager/snapshot.go
parentbde81f6f54f0b2fa4440884eeffa7db36b70f837 (diff)
syz-manager: check for the minimum reply buffer size
Closes #5176.
Diffstat (limited to 'syz-manager/snapshot.go')
-rw-r--r--syz-manager/snapshot.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/syz-manager/snapshot.go b/syz-manager/snapshot.go
index 52d3f02e2..ece7974f2 100644
--- a/syz-manager/snapshot.go
+++ b/syz-manager/snapshot.go
@@ -161,6 +161,11 @@ func (mgr *Manager) snapshotRun(inst *vm.Instance, builder *flatbuffers.Builder,
}
func parseExecResult(data []byte) *flatrpc.ExecResult {
+ if len(data) < flatbuffers.SizeUint32 {
+ return &flatrpc.ExecResult{
+ Error: "the buffer is too small",
+ }
+ }
raw, err := flatrpc.Parse[*flatrpc.ExecutorMessageRaw](data[flatbuffers.SizeUint32:])
if err != nil {
// Don't consider result parsing error as an infrastructure error,