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
+}