From 26baf8a94e23597b300450b13ad7fe2e7e49ce82 Mon Sep 17 00:00:00 2001 From: Roman Ognev Date: Mon, 16 Sep 2024 12:04:52 +0300 Subject: [PATCH] [#492] Add panic catchers to fuzzing tests Signed-off-by: Roman Ognev --- api/auth/center_fuzz_test.go | 2 +- api/handler/handler_fuzz_test.go | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/api/auth/center_fuzz_test.go b/api/auth/center_fuzz_test.go index 950e54d..36099af 100644 --- a/api/auth/center_fuzz_test.go +++ b/api/auth/center_fuzz_test.go @@ -72,7 +72,7 @@ func DoFuzzAuthenticate(input []byte) int { c := &Center{ cli: mock, - reg: NewRegexpMatcher(authorizationFieldRegexp), + reg: NewRegexpMatcher(AuthorizationFieldRegexp), postReg: NewRegexpMatcher(postPolicyCredentialRegexp), } 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