...
1
16
17 package fuzzer
18
19 import (
20 fuzz "github.com/google/gofuzz"
21
22 runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
23 "k8s.io/kubernetes/pkg/apis/rbac"
24 )
25
26
27 var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} {
28 return []interface{}{
29 func(r *rbac.RoleRef, c fuzz.Continue) {
30 c.FuzzNoCustom(r)
31
32
33 if len(r.APIGroup) == 0 {
34 r.APIGroup = rbac.GroupName
35 }
36 },
37 func(r *rbac.Subject, c fuzz.Continue) {
38 switch c.Int31n(3) {
39 case 0:
40 r.Kind = rbac.ServiceAccountKind
41 r.APIGroup = ""
42 c.FuzzNoCustom(&r.Name)
43 c.FuzzNoCustom(&r.Namespace)
44 case 1:
45 r.Kind = rbac.UserKind
46 r.APIGroup = rbac.GroupName
47 c.FuzzNoCustom(&r.Name)
48
49 for r.Name == "*" {
50 c.FuzzNoCustom(&r.Name)
51 }
52 case 2:
53 r.Kind = rbac.GroupKind
54 r.APIGroup = rbac.GroupName
55 c.FuzzNoCustom(&r.Name)
56 }
57 },
58 }
59 }
60
View as plain text