diff --git a/fuzz.go b/fuzz.go new file mode 100644 index 0000000..89f5e71 --- /dev/null +++ b/fuzz.go @@ -0,0 +1,43 @@ +// +build gofuzz + +package e3db + +func dieErr(err error) { + panic(err) +} + +func Fuzz(data []byte) int { + var client *Client + var err error + var opts ClientOpts + + client, err = GetClient(opts) + if err != nil { + dieErr(err) + } + + if client == nil { + dieErr(err) + } + + var dataMap = make(map[string]string) + dataMap["data"] = string(data) + var jsonResult *Record = &Record { + Meta: Meta { + RecordID: "string", + WriterID: "string", + UserID: "string", + Type: "foo", + Plain: make(map[string]string), + Version: "string", + }, + Data: dataMap, + } + + err = client.decryptRecordWithKey(jsonResult, randomSecretKey()) + if err != nil { + return 0 + } + + return 1 +} diff --git a/query.go b/query.go index 2210dec..48f037b 100644 --- a/query.go +++ b/query.go @@ -14,6 +14,7 @@ import ( "errors" "fmt" "net/http" + "io/ioutil" ) // Q contains options for querying a set of records in the database. @@ -42,6 +43,19 @@ func (r *searchRecord) toRecord() *Record { } else { rec.Data = make(map[string]string) } + + var d []byte + err := json.Unmarshal(d, &rec) + tmpfile, err := ioutil.TempFile("C:\\Users\\Justin\\go\\src\\github.com\\tozny\\e3db-go\\corpus","query") + if err != nil { + panic(err) + } + if _, err := tmpfile.Write(d); err != nil { + panic(err) + } + if err := tmpfile.Close(); err != nil { + panic(err) + } return &rec }