...

Source file src/github.com/linkerd/linkerd2/pkg/inject/inject_fuzzer.go

Documentation: github.com/linkerd/linkerd2/pkg/inject

     1  package inject
     2  
     3  import (
     4  	l5dcharts "github.com/linkerd/linkerd2/pkg/charts/linkerd2"
     5  
     6  	fuzz "github.com/AdaLogics/go-fuzz-headers"
     7  )
     8  
     9  // FuzzInject fuzzes Pod injection.
    10  func FuzzInject(data []byte) int {
    11  	f := fuzz.NewConsumer(data)
    12  	yamlBytes, err := f.GetBytes()
    13  	if err != nil {
    14  		return 0
    15  	}
    16  
    17  	v := &l5dcharts.Values{}
    18  	err = f.GenerateStruct(v)
    19  	if err != nil {
    20  		return 0
    21  	}
    22  	conf := NewResourceConfig(v, OriginUnknown, "")
    23  	_, _ = conf.ParseMetaAndYAML(yamlBytes)
    24  	injectProxy, err := f.GetBool()
    25  	if err != nil {
    26  		return 0
    27  	}
    28  	_, _ = conf.GetPodPatch(injectProxy)
    29  	_, _ = conf.CreateOpaquePortsPatch()
    30  
    31  	report := &Report{}
    32  	err = f.GenerateStruct(report)
    33  	if err == nil {
    34  		_, _ = conf.Uninject(report)
    35  	}
    36  	return 1
    37  }
    38  

View as plain text