@marcel91200 / caddy Mirror · read-only / commits / 03b5debd
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 14, 05:15 UTC

ci: fuzz: add 4 more fuzzing targets (#4105)

Mohammed Al Sahaf committed Apr 8, 2021 at 17:45 UTC 03b5debd958a324d5c00cc37f887130b0198e747
4 files changed +103
caddyconfig/caddyfile/formatter_fuzz.go new
+25
@@ -0,0 +1,25 @@
1 +// Copyright 2015 Matthew Holt and The Caddy Authors
2 +//
3 +// Licensed under the Apache License, Version 2.0 (the "License");
4 +// you may not use this file except in compliance with the License.
5 +// You may obtain a copy of the License at
6 +//
7 +// http://www.apache.org/licenses/LICENSE-2.0
8 +//
9 +// Unless required by applicable law or agreed to in writing, software
10 +// distributed under the License is distributed on an "AS IS" BASIS,
11 +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 +// See the License for the specific language governing permissions and
13 +// limitations under the License.
14 +
15 +// +build gofuzz
16 +
17 +package caddyfile
18 +
19 +func FuzzFormat(input []byte) int {
20 + formatted := Format(input)
21 + if formatted != Format(formatted) {
22 + return 1
23 + }
24 + return 0
25 +}
caddyconfig/caddyfile/lexer_fuzz.go new
+28
@@ -0,0 +1,28 @@
1 +// Copyright 2015 Matthew Holt and The Caddy Authors
2 +//
3 +// Licensed under the Apache License, Version 2.0 (the "License");
4 +// you may not use this file except in compliance with the License.
5 +// You may obtain a copy of the License at
6 +//
7 +// http://www.apache.org/licenses/LICENSE-2.0
8 +//
9 +// Unless required by applicable law or agreed to in writing, software
10 +// distributed under the License is distributed on an "AS IS" BASIS,
11 +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 +// See the License for the specific language governing permissions and
13 +// limitations under the License.
14 +
15 +// +build gofuzz
16 +
17 +package caddyfile
18 +
19 +func FuzzTokenize(input []byte) int {
20 + tokens, err := Tokenize(input, "Caddyfile")
21 + if err != nil {
22 + return 0
23 + }
24 + if len(tokens) == 0 {
25 + return -1
26 + }
27 + return 1
28 +}
duration_fuzz.go new
+25
@@ -0,0 +1,25 @@
1 +// Copyright 2015 Matthew Holt and The Caddy Authors
2 +//
3 +// Licensed under the Apache License, Version 2.0 (the "License");
4 +// you may not use this file except in compliance with the License.
5 +// You may obtain a copy of the License at
6 +//
7 +// http://www.apache.org/licenses/LICENSE-2.0
8 +//
9 +// Unless required by applicable law or agreed to in writing, software
10 +// distributed under the License is distributed on an "AS IS" BASIS,
11 +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 +// See the License for the specific language governing permissions and
13 +// limitations under the License.
14 +
15 +// +build gofuzz
16 +
17 +package caddy
18 +
19 +func FuzzParseDuration(data []byte) int {
20 + _, err := ParseDuration(string(data))
21 + if err != nil {
22 + return 0
23 + }
24 + return 1
25 +}
modules/caddyhttp/templates/frontmatter_fuzz.go new
+25
@@ -0,0 +1,25 @@
1 +// Copyright 2015 Matthew Holt and The Caddy Authors
2 +//
3 +// Licensed under the Apache License, Version 2.0 (the "License");
4 +// you may not use this file except in compliance with the License.
5 +// You may obtain a copy of the License at
6 +//
7 +// http://www.apache.org/licenses/LICENSE-2.0
8 +//
9 +// Unless required by applicable law or agreed to in writing, software
10 +// distributed under the License is distributed on an "AS IS" BASIS,
11 +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 +// See the License for the specific language governing permissions and
13 +// limitations under the License.
14 +
15 +// +build gofuzz
16 +
17 +package templates
18 +
19 +func FuzzExtractFrontMatter(data []byte) int {
20 + _, _, err := extractFrontMatter(string(data))
21 + if err != nil {
22 + return 0
23 + }
24 + return 1
25 +}