aboutsummaryrefslogtreecommitdiff
path: root/doc/examples/fuzz/fuzz_openexec.go
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-08-14 17:31:36 -0300
committerEuAndreh <eu@euandre.org>2024-08-14 17:31:36 -0300
commit0b8d97f96dd4db0e50a1cb68a0740a55017c469b (patch)
treeaeb75b31cec46c6de5a8e28aceabeb10143d98f2 /doc/examples/fuzz/fuzz_openexec.go
parentRemove most files from _example/ (diff)
downloadgolite-0b8d97f96dd4db0e50a1cb68a0740a55017c469b.tar.gz
golite-0b8d97f96dd4db0e50a1cb68a0740a55017c469b.tar.xz
git mv _example doc/examples/
Diffstat (limited to 'doc/examples/fuzz/fuzz_openexec.go')
-rw-r--r--doc/examples/fuzz/fuzz_openexec.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/examples/fuzz/fuzz_openexec.go b/doc/examples/fuzz/fuzz_openexec.go
new file mode 100644
index 0000000..5326044
--- /dev/null
+++ b/doc/examples/fuzz/fuzz_openexec.go
@@ -0,0 +1,30 @@
+package sqlite3_fuzz
+
+import (
+ "bytes"
+ "database/sql"
+ "io/ioutil"
+
+ _ "github.com/mattn/go-sqlite3"
+)
+
+func FuzzOpenExec(data []byte) int {
+ sep := bytes.IndexByte(data, 0)
+ if sep <= 0 {
+ return 0
+ }
+ err := ioutil.WriteFile("/tmp/fuzz.db", data[sep+1:], 0644)
+ if err != nil {
+ return 0
+ }
+ db, err := sql.Open("sqlite3", "/tmp/fuzz.db")
+ if err != nil {
+ return 0
+ }
+ defer db.Close()
+ _, err = db.Exec(string(data[:sep-1]))
+ if err != nil {
+ return 0
+ }
+ return 1
+}