Compare commits
2 commits
master
...
feature/re
Author | SHA1 | Date | |
---|---|---|---|
5e6ee3a41c | |||
3aed60aa79 |
2 changed files with 46 additions and 61 deletions
9
Makefile
9
Makefile
|
@ -31,6 +31,10 @@ PKG_VERSION ?= $(shell echo $(VERSION) | sed "s/^v//" | \
|
||||||
.PHONY: debpackage debclean
|
.PHONY: debpackage debclean
|
||||||
|
|
||||||
FUZZING_DIR = $(shell pwd)/tests/fuzzing/files
|
FUZZING_DIR = $(shell pwd)/tests/fuzzing/files
|
||||||
|
FUZZING_TEMP_DIRS = $(shell find . -type f -name '*_fuzz_test.go' -exec dirname {} \; | uniq | xargs -I{} echo -n "{}/tempfuzz ")
|
||||||
|
FUZZING_COVER_FILES = $(shell find . -type f -name '*_fuzz_test.go' -exec dirname {} \; | uniq | xargs -I{} echo -n "{}/cover.out ")
|
||||||
|
FUZZING_FUNC_FILES = $(shell find . -type f -name '*_fuzz_test.go' -exec dirname {} \; | uniq | xargs -I{} echo -n "{}/func.txt ")
|
||||||
|
FUZZING_INDEX_FILES = $(shell find . -type f -name '*_fuzz_test.go' -exec dirname {} \; | uniq | xargs -I{} echo -n "{}/index.html ")
|
||||||
NGFUZZ_REPO = https://gitflic.ru/project/yadro/ngfuzz.git
|
NGFUZZ_REPO = https://gitflic.ru/project/yadro/ngfuzz.git
|
||||||
FUZZ_TIMEOUT ?= 30
|
FUZZ_TIMEOUT ?= 30
|
||||||
FUZZ_FUNCTIONS ?= ""
|
FUZZ_FUNCTIONS ?= ""
|
||||||
|
@ -188,7 +192,10 @@ version:
|
||||||
# Clean up
|
# Clean up
|
||||||
clean:
|
clean:
|
||||||
rm -rf vendor
|
rm -rf vendor
|
||||||
rm -rf $(BINDIR)
|
rm -rf $(BINDIR)
|
||||||
|
rm -rf $(FUZZING_DIR) $(FUZZING_TEMP_DIRS)
|
||||||
|
rm -f $(FUZZING_COVER_FILES) $(FUZZING_FUNC_FILES) $(FUZZING_INDEX_FILES)
|
||||||
|
git checkout -- go.mod go.sum
|
||||||
|
|
||||||
# Package for Debian
|
# Package for Debian
|
||||||
debpackage:
|
debpackage:
|
||||||
|
|
|
@ -24,11 +24,6 @@ import (
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
fuzzSuccessExitCode = 0
|
|
||||||
fuzzFailExitCode = -1
|
|
||||||
)
|
|
||||||
|
|
||||||
func prepareStrings(tp *go_fuzz_utils.TypeProvider, count int) ([]string, error) {
|
func prepareStrings(tp *go_fuzz_utils.TypeProvider, count int) ([]string, error) {
|
||||||
array := make([]string, count)
|
array := make([]string, count)
|
||||||
var err error
|
var err error
|
||||||
|
@ -222,23 +217,18 @@ func InitFuzzUpload() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func DoFuzzUpload(input []byte) int {
|
func DoFuzzUpload(input []byte) {
|
||||||
// FUZZER INIT
|
// FUZZER INIT
|
||||||
if len(input) < 100 {
|
if len(input) < 100 {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_, _, _, _, _, _, _, err = upload(tp)
|
_, _, _, _, _, _, _, _ = upload(tp)
|
||||||
if err != nil {
|
|
||||||
return fuzzFailExitCode
|
|
||||||
}
|
|
||||||
|
|
||||||
return fuzzSuccessExitCode
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func FuzzUpload(f *testing.F) {
|
func FuzzUpload(f *testing.F) {
|
||||||
|
@ -307,30 +297,28 @@ func InitFuzzGet() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func DoFuzzGet(input []byte) int {
|
func DoFuzzGet(input []byte) {
|
||||||
// FUZZER INIT
|
// FUZZER INIT
|
||||||
if len(input) < 100 {
|
if len(input) < 100 {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, hc, cnrID, resp, filename, _, _, err := upload(tp)
|
ctx, hc, cnrID, resp, filename, _, _, err := upload(tp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
r, err := downloadOrHead(tp, ctx, hc, cnrID, resp, filename)
|
r, err := downloadOrHead(tp, ctx, hc, cnrID, resp, filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
hc.Handler().DownloadByAddressOrBucketName(r)
|
hc.Handler().DownloadByAddressOrBucketName(r)
|
||||||
|
|
||||||
return fuzzSuccessExitCode
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func FuzzGet(f *testing.F) {
|
func FuzzGet(f *testing.F) {
|
||||||
|
@ -343,30 +331,28 @@ func InitFuzzHead() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func DoFuzzHead(input []byte) int {
|
func DoFuzzHead(input []byte) {
|
||||||
// FUZZER INIT
|
// FUZZER INIT
|
||||||
if len(input) < 100 {
|
if len(input) < 100 {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, hc, cnrID, resp, filename, _, _, err := upload(tp)
|
ctx, hc, cnrID, resp, filename, _, _, err := upload(tp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
r, err := downloadOrHead(tp, ctx, hc, cnrID, resp, filename)
|
r, err := downloadOrHead(tp, ctx, hc, cnrID, resp, filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
hc.Handler().HeadByAddressOrBucketName(r)
|
hc.Handler().HeadByAddressOrBucketName(r)
|
||||||
|
|
||||||
return fuzzSuccessExitCode
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func FuzzHead(f *testing.F) {
|
func FuzzHead(f *testing.F) {
|
||||||
|
@ -379,36 +365,36 @@ func InitFuzzDownloadByAttribute() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func DoFuzzDownloadByAttribute(input []byte) int {
|
func DoFuzzDownloadByAttribute(input []byte) {
|
||||||
// FUZZER INIT
|
// FUZZER INIT
|
||||||
if len(input) < 100 {
|
if len(input) < 100 {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, hc, cnrID, _, _, attrKey, attrVal, err := upload(tp)
|
ctx, hc, cnrID, _, _, attrKey, attrVal, err := upload(tp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cid := cnrID.EncodeToString()
|
cid := cnrID.EncodeToString()
|
||||||
cid, err = maybeFillRandom(tp, cid)
|
cid, err = maybeFillRandom(tp, cid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
attrKey, err = maybeFillRandom(tp, attrKey)
|
attrKey, err = maybeFillRandom(tp, attrKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
attrVal, err = maybeFillRandom(tp, attrVal)
|
attrVal, err = maybeFillRandom(tp, attrVal)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
r := new(fasthttp.RequestCtx)
|
r := new(fasthttp.RequestCtx)
|
||||||
|
@ -418,8 +404,6 @@ func DoFuzzDownloadByAttribute(input []byte) int {
|
||||||
r.SetUserValue("attr_val", attrVal)
|
r.SetUserValue("attr_val", attrVal)
|
||||||
|
|
||||||
hc.Handler().DownloadByAttribute(r)
|
hc.Handler().DownloadByAttribute(r)
|
||||||
|
|
||||||
return fuzzSuccessExitCode
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func FuzzDownloadByAttribute(f *testing.F) {
|
func FuzzDownloadByAttribute(f *testing.F) {
|
||||||
|
@ -432,36 +416,36 @@ func InitFuzzHeadByAttribute() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func DoFuzzHeadByAttribute(input []byte) int {
|
func DoFuzzHeadByAttribute(input []byte) {
|
||||||
// FUZZER INIT
|
// FUZZER INIT
|
||||||
if len(input) < 100 {
|
if len(input) < 100 {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, hc, cnrID, _, _, attrKey, attrVal, err := upload(tp)
|
ctx, hc, cnrID, _, _, attrKey, attrVal, err := upload(tp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cid := cnrID.EncodeToString()
|
cid := cnrID.EncodeToString()
|
||||||
cid, err = maybeFillRandom(tp, cid)
|
cid, err = maybeFillRandom(tp, cid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
attrKey, err = maybeFillRandom(tp, attrKey)
|
attrKey, err = maybeFillRandom(tp, attrKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
attrVal, err = maybeFillRandom(tp, attrVal)
|
attrVal, err = maybeFillRandom(tp, attrVal)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
r := new(fasthttp.RequestCtx)
|
r := new(fasthttp.RequestCtx)
|
||||||
|
@ -471,8 +455,6 @@ func DoFuzzHeadByAttribute(input []byte) int {
|
||||||
r.SetUserValue("attr_val", attrVal)
|
r.SetUserValue("attr_val", attrVal)
|
||||||
|
|
||||||
hc.Handler().HeadByAttribute(r)
|
hc.Handler().HeadByAttribute(r)
|
||||||
|
|
||||||
return fuzzSuccessExitCode
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func FuzzHeadByAttribute(f *testing.F) {
|
func FuzzHeadByAttribute(f *testing.F) {
|
||||||
|
@ -485,32 +467,32 @@ func InitFuzzDownloadZipped() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func DoFuzzDownloadZipped(input []byte) int {
|
func DoFuzzDownloadZipped(input []byte) {
|
||||||
// FUZZER INIT
|
// FUZZER INIT
|
||||||
if len(input) < 100 {
|
if len(input) < 100 {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, hc, cnrID, _, _, _, _, err := upload(tp)
|
ctx, hc, cnrID, _, _, _, _, err := upload(tp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cid := cnrID.EncodeToString()
|
cid := cnrID.EncodeToString()
|
||||||
cid, err = maybeFillRandom(tp, cid)
|
cid, err = maybeFillRandom(tp, cid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
prefix := ""
|
prefix := ""
|
||||||
prefix, err = maybeFillRandom(tp, prefix)
|
prefix, err = maybeFillRandom(tp, prefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
r := new(fasthttp.RequestCtx)
|
r := new(fasthttp.RequestCtx)
|
||||||
|
@ -519,8 +501,6 @@ func DoFuzzDownloadZipped(input []byte) int {
|
||||||
r.SetUserValue("prefix", prefix)
|
r.SetUserValue("prefix", prefix)
|
||||||
|
|
||||||
hc.Handler().DownloadZip(r)
|
hc.Handler().DownloadZip(r)
|
||||||
|
|
||||||
return fuzzSuccessExitCode
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func FuzzDownloadZipped(f *testing.F) {
|
func FuzzDownloadZipped(f *testing.F) {
|
||||||
|
@ -533,21 +513,21 @@ func InitFuzzStoreBearerTokenAppCtx() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func DoFuzzStoreBearerTokenAppCtx(input []byte) int {
|
func DoFuzzStoreBearerTokenAppCtx(input []byte) {
|
||||||
// FUZZER INIT
|
// FUZZER INIT
|
||||||
if len(input) < 100 {
|
if len(input) < 100 {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
tp, err := go_fuzz_utils.NewTypeProvider(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
prefix := ""
|
prefix := ""
|
||||||
prefix, err = maybeFillRandom(tp, prefix)
|
prefix, err = maybeFillRandom(tp, prefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fuzzFailExitCode
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
@ -570,8 +550,6 @@ func DoFuzzStoreBearerTokenAppCtx(input []byte) int {
|
||||||
}
|
}
|
||||||
|
|
||||||
tokens.StoreBearerTokenAppCtx(ctx, r)
|
tokens.StoreBearerTokenAppCtx(ctx, r)
|
||||||
|
|
||||||
return fuzzSuccessExitCode
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func FuzzStoreBearerTokenAppCtx(f *testing.F) {
|
func FuzzStoreBearerTokenAppCtx(f *testing.F) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue