瀏覽代碼

Add gofuzz function

Chris Bannister 10 年之前
父節點
當前提交
f1c3acc0e7
共有 2 個文件被更改,包括 37 次插入0 次删除
  1. 4 0
      .gitignore
  2. 33 0
      fuzz.go

+ 4 - 0
.gitignore

@@ -0,0 +1,4 @@
+gocql-fuzz
+fuzz-corpus
+fuzz-work
+gocql.test

+ 33 - 0
fuzz.go

@@ -0,0 +1,33 @@
+// +build gofuzz
+
+package gocql
+
+import "bytes"
+
+func Fuzz(data []byte) int {
+	var bw bytes.Buffer
+
+	r := bytes.NewReader(data)
+
+	head, err := readHeader(r, make([]byte, 9))
+	if err != nil {
+		return 0
+	}
+
+	framer := newFramer(r, &bw, nil, 3)
+	err = framer.readFrame(&head)
+	if err != nil {
+		return 0
+	}
+
+	frame, err := framer.parseFrame()
+	if err != nil {
+		return 0
+	}
+
+	if frame != nil {
+		return 1
+	}
+
+	return 2
+}