...

Package gofuzzheaders

import "github.com/AdaLogics/go-fuzz-headers"
Overview
Index
Subdirectories

Overview ▾

Index ▾

Variables
func IsDivisibleBy(n int, divisibleby int) bool
func SetMaxTotalLen(newLen uint32)
type ConsumeFuzzer
    func NewConsumer(fuzzData []byte) *ConsumeFuzzer
    func (f *ConsumeFuzzer) AddFuncs(fuzzFuncs []interface{})
    func (f *ConsumeFuzzer) AllowUnexportedFields()
    func (f *ConsumeFuzzer) CreateFiles(rootDir string) error
    func (f *ConsumeFuzzer) CreateSlice(targetSlice interface{}) error
    func (f *ConsumeFuzzer) DisallowUnexportedFields()
    func (f *ConsumeFuzzer) FuzzMap(m interface{}) error
    func (f *ConsumeFuzzer) GenerateStruct(targetStruct interface{}) error
    func (f *ConsumeFuzzer) GenerateWithCustom(targetStruct interface{}) error
    func (f *ConsumeFuzzer) GetBool() (bool, error)
    func (f *ConsumeFuzzer) GetByte() (byte, error)
    func (f *ConsumeFuzzer) GetBytes() ([]byte, error)
    func (f *ConsumeFuzzer) GetFloat32() (float32, error)
    func (f *ConsumeFuzzer) GetFloat64() (float64, error)
    func (f *ConsumeFuzzer) GetInt() (int, error)
    func (f *ConsumeFuzzer) GetNBytes(numberOfBytes int) ([]byte, error)
    func (f *ConsumeFuzzer) GetRune() ([]rune, error)
    func (f *ConsumeFuzzer) GetSQLString() (string, error)
    func (f *ConsumeFuzzer) GetString() (string, error)
    func (f *ConsumeFuzzer) GetStringArray() (reflect.Value, error)
    func (f *ConsumeFuzzer) GetStringFrom(possibleChars string, length int) (string, error)
    func (f *ConsumeFuzzer) GetUint16() (uint16, error)
    func (f *ConsumeFuzzer) GetUint32() (uint32, error)
    func (f *ConsumeFuzzer) GetUint64() (uint64, error)
    func (f *ConsumeFuzzer) Split(minCalls, maxCalls int) error
    func (f *ConsumeFuzzer) TarBytes() ([]byte, error)
    func (f *ConsumeFuzzer) TarFiles() ([]*TarFile, error)
type Continue
    func (c Continue) GenerateStruct(targetStruct interface{}) error
    func (c Continue) GenerateStructWithCustom(targetStruct interface{}) error
type TarFile

Package files

consumer.go funcs.go sql.go

Variables

var (
    MaxTotalLen uint32 = 2000000
)

func IsDivisibleBy

func IsDivisibleBy(n int, divisibleby int) bool

func SetMaxTotalLen

func SetMaxTotalLen(newLen uint32)

type ConsumeFuzzer

type ConsumeFuzzer struct {
    CommandPart   []byte
    RestOfArray   []byte
    NumberOfCalls int

    Funcs map[reflect.Type]reflect.Value
    // contains filtered or unexported fields
}

func NewConsumer

func NewConsumer(fuzzData []byte) *ConsumeFuzzer

func (*ConsumeFuzzer) AddFuncs

func (f *ConsumeFuzzer) AddFuncs(fuzzFuncs []interface{})

func (*ConsumeFuzzer) AllowUnexportedFields

func (f *ConsumeFuzzer) AllowUnexportedFields()

func (*ConsumeFuzzer) CreateFiles

func (f *ConsumeFuzzer) CreateFiles(rootDir string) error

CreateFiles creates pseudo-random files in rootDir. It creates subdirs and places the files there. It is the callers responsibility to ensure that rootDir exists.

func (*ConsumeFuzzer) CreateSlice

func (f *ConsumeFuzzer) CreateSlice(targetSlice interface{}) error

func (*ConsumeFuzzer) DisallowUnexportedFields

func (f *ConsumeFuzzer) DisallowUnexportedFields()

func (*ConsumeFuzzer) FuzzMap

func (f *ConsumeFuzzer) FuzzMap(m interface{}) error

func (*ConsumeFuzzer) GenerateStruct

func (f *ConsumeFuzzer) GenerateStruct(targetStruct interface{}) error

func (*ConsumeFuzzer) GenerateWithCustom

func (f *ConsumeFuzzer) GenerateWithCustom(targetStruct interface{}) error

func (*ConsumeFuzzer) GetBool

func (f *ConsumeFuzzer) GetBool() (bool, error)

func (*ConsumeFuzzer) GetByte

func (f *ConsumeFuzzer) GetByte() (byte, error)

func (*ConsumeFuzzer) GetBytes

func (f *ConsumeFuzzer) GetBytes() ([]byte, error)

func (*ConsumeFuzzer) GetFloat32

func (f *ConsumeFuzzer) GetFloat32() (float32, error)

func (*ConsumeFuzzer) GetFloat64

func (f *ConsumeFuzzer) GetFloat64() (float64, error)

func (*ConsumeFuzzer) GetInt

func (f *ConsumeFuzzer) GetInt() (int, error)

func (*ConsumeFuzzer) GetNBytes

func (f *ConsumeFuzzer) GetNBytes(numberOfBytes int) ([]byte, error)

func (*ConsumeFuzzer) GetRune

func (f *ConsumeFuzzer) GetRune() ([]rune, error)

func (*ConsumeFuzzer) GetSQLString

func (f *ConsumeFuzzer) GetSQLString() (string, error)

GetSQLString is the API that users interact with.

Usage:

f := NewConsumer(data)
sqlString, err := f.GetSQLString()

func (*ConsumeFuzzer) GetString

func (f *ConsumeFuzzer) GetString() (string, error)

func (*ConsumeFuzzer) GetStringArray

func (f *ConsumeFuzzer) GetStringArray() (reflect.Value, error)

func (*ConsumeFuzzer) GetStringFrom

func (f *ConsumeFuzzer) GetStringFrom(possibleChars string, length int) (string, error)

GetStringFrom returns a string that can only consist of characters included in possibleChars. It returns an error if the created string does not have the specified length.

func (*ConsumeFuzzer) GetUint16

func (f *ConsumeFuzzer) GetUint16() (uint16, error)

func (*ConsumeFuzzer) GetUint32

func (f *ConsumeFuzzer) GetUint32() (uint32, error)

func (*ConsumeFuzzer) GetUint64

func (f *ConsumeFuzzer) GetUint64() (uint64, error)

func (*ConsumeFuzzer) Split

func (f *ConsumeFuzzer) Split(minCalls, maxCalls int) error

func (*ConsumeFuzzer) TarBytes

func (f *ConsumeFuzzer) TarBytes() ([]byte, error)

TarBytes returns valid bytes for a tar archive

func (*ConsumeFuzzer) TarFiles

func (f *ConsumeFuzzer) TarFiles() ([]*TarFile, error)

This is similar to TarBytes, but it returns a series of files instead of raw tar bytes. The advantage of this api is that it is cheaper in terms of cpu power to modify or check the files in the fuzzer with TarFiles() because it avoids creating a tar reader.

type Continue

type Continue struct {
    F *ConsumeFuzzer
}

func (Continue) GenerateStruct

func (c Continue) GenerateStruct(targetStruct interface{}) error

func (Continue) GenerateStructWithCustom

func (c Continue) GenerateStructWithCustom(targetStruct interface{}) error

type TarFile

type TarFile struct {
    Hdr  *tar.Header
    Body []byte
}

Subdirectories

Name Synopsis
..
bytesource