diff --git a/api/handler/handler_fuzz_test.go b/api/handler/handler_fuzz_test.go index 0499930..fb9be66 100644 --- a/api/handler/handler_fuzz_test.go +++ b/api/handler/handler_fuzz_test.go @@ -9,6 +9,7 @@ import ( "encoding/base64" "encoding/hex" "encoding/xml" + "errors" "mime/multipart" "net/http" "net/http/httptest" @@ -88,6 +89,12 @@ func addMD5Header(tp *utils.TypeProvider, r *http.Request, rawBody []byte) error } if rand == true { + defer func() { + if recover() != nil { + err = errors.New("panic in base64") + } + }() + var dst []byte base64.StdEncoding.Encode(dst, rawBody) hash := md5.Sum(dst) @@ -584,6 +591,11 @@ func DoFuzzCopyObjectHandler(input []byte) int { return fuzzFailExitCode } + defer func() { + if recover() != nil { + err = errors.New("panic in httptest.NewRequest") + } + }() r = httptest.NewRequest(http.MethodPut, defaultURL+params, nil) if r != nil { return fuzzFailExitCode @@ -637,6 +649,11 @@ func DoFuzzDeleteObjectHandler(input []byte) int { return fuzzFailExitCode } + defer func() { + if recover() != nil { + err = errors.New("panic in httptest.NewRequest") + } + }() r = httptest.NewRequest(http.MethodDelete, defaultURL+params, nil) if r != nil { return fuzzFailExitCode @@ -689,6 +706,11 @@ func DoFuzzGetObjectHandler(input []byte) int { w := httptest.NewRecorder() + defer func() { + if recover() != nil { + err = errors.New("panic in httptest.NewRequest") + } + }() r := httptest.NewRequest(http.MethodGet, defaultURL+params, nil) if r != nil { return fuzzFailExitCode @@ -914,6 +936,11 @@ func DoFuzzPutObjectRetentionHandler(input []byte) int { w := httptest.NewRecorder() + defer func() { + if recover() != nil { + err = errors.New("panic in httptest.NewRequest") + } + }() r := httptest.NewRequest(http.MethodPut, defaultURL+objName+"?retention", bytes.NewReader(rawBody)) if r != nil { return fuzzFailExitCode