go-fuzz-headers – github.com/AdaLogics/go-fuzz-headers Index | Files | Directories

package gofuzzheaders

import "github.com/AdaLogics/go-fuzz-headers"

Index

Variables

var (
	MaxTotalLen uint32 = 2000000
)

Functions

func IsDivisibleBy

func IsDivisibleBy(n int, divisibleby int) bool

func SetMaxTotalLen

func SetMaxTotalLen(newLen uint32)

Types

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) AllowNonUTF8Strings

func (f *ConsumeFuzzer) AllowNonUTF8Strings()

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) DisallowNonUTF8Strings

func (f *ConsumeFuzzer) DisallowNonUTF8Strings()

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) GetUint

func (f *ConsumeFuzzer) GetUint() (uint, error)

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
}

Source Files

consumer.go funcs.go sql.go

Directories

PathSynopsis
bytesource
Version
v0.0.0-20240806141605-e8a1dd7889d6 (latest)
Published
Aug 6, 2024
Platform
js/wasm
Imports
14 packages
Last checked
now

Tools for package owners.