mirror of
https://github.com/github/codeql.git
synced 2026-02-27 04:13:51 +01:00
Add taint-tracking for reflect package
This commit is contained in:
@@ -14,6 +14,7 @@ import semmle.go.frameworks.stdlib.CompressLzw
|
||||
import semmle.go.frameworks.stdlib.CompressZlib
|
||||
import semmle.go.frameworks.stdlib.Path
|
||||
import semmle.go.frameworks.stdlib.PathFilepath
|
||||
import semmle.go.frameworks.stdlib.Reflect
|
||||
|
||||
/** A `String()` method. */
|
||||
class StringMethod extends TaintTracking::FunctionModel, Method {
|
||||
|
||||
234
ql/src/semmle/go/frameworks/stdlib/Reflect.qll
Normal file
234
ql/src/semmle/go/frameworks/stdlib/Reflect.qll
Normal file
@@ -0,0 +1,234 @@
|
||||
/**
|
||||
* Provides classes modeling security-relevant aspects of the `reflect` package.
|
||||
*/
|
||||
|
||||
import go
|
||||
|
||||
/** Provides models of commonly used functions in the `reflect` package. */
|
||||
module Reflect {
|
||||
private class FunctionModels extends TaintTracking::FunctionModel {
|
||||
FunctionInput inp;
|
||||
FunctionOutput outp;
|
||||
|
||||
FunctionModels() {
|
||||
// signature: func Append(s Value, x ...Value) Value
|
||||
hasQualifiedName("reflect", "Append") and
|
||||
(
|
||||
inp.isParameter(_) and outp.isResult()
|
||||
or
|
||||
inp.isParameter(any(int i | i >= 1)) and outp.isParameter(0)
|
||||
)
|
||||
or
|
||||
// signature: func AppendSlice(s Value, t Value) Value
|
||||
hasQualifiedName("reflect", "AppendSlice") and
|
||||
(
|
||||
inp.isParameter(_) and outp.isResult()
|
||||
or
|
||||
inp.isParameter(1) and outp.isParameter(0)
|
||||
)
|
||||
or
|
||||
// signature: func Copy(dst Value, src Value) int
|
||||
hasQualifiedName("reflect", "Copy") and
|
||||
(inp.isParameter(1) and outp.isParameter(0))
|
||||
or
|
||||
// signature: func Indirect(v Value) Value
|
||||
hasQualifiedName("reflect", "Indirect") and
|
||||
(inp.isParameter(0) and outp.isResult())
|
||||
or
|
||||
// signature: func ValueOf(i interface{}) Value
|
||||
hasQualifiedName("reflect", "ValueOf") and
|
||||
(inp.isParameter(0) and outp.isResult())
|
||||
}
|
||||
|
||||
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
|
||||
input = inp and output = outp
|
||||
}
|
||||
}
|
||||
|
||||
private class MethodModels extends TaintTracking::FunctionModel, Method {
|
||||
FunctionInput inp;
|
||||
FunctionOutput outp;
|
||||
|
||||
MethodModels() {
|
||||
// signature: func (*MapIter).Key() Value
|
||||
this.hasQualifiedName("reflect", "MapIter", "Key") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (*MapIter).Value() Value
|
||||
this.hasQualifiedName("reflect", "MapIter", "Value") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (StructTag).Get(key string) string
|
||||
this.hasQualifiedName("reflect", "StructTag", "Get") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (StructTag).Lookup(key string) (value string, ok bool)
|
||||
this.hasQualifiedName("reflect", "StructTag", "Lookup") and
|
||||
(inp.isReceiver() and outp.isResult(0))
|
||||
or
|
||||
// signature: func (Value).Addr() Value
|
||||
this.hasQualifiedName("reflect", "Value", "Addr") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Bool() bool
|
||||
this.hasQualifiedName("reflect", "Value", "Bool") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Bytes() []byte
|
||||
this.hasQualifiedName("reflect", "Value", "Bytes") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Complex() complex128
|
||||
this.hasQualifiedName("reflect", "Value", "Complex") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Convert(t Type) Value
|
||||
this.hasQualifiedName("reflect", "Value", "Convert") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Elem() Value
|
||||
this.hasQualifiedName("reflect", "Value", "Elem") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Field(i int) Value
|
||||
this.hasQualifiedName("reflect", "Value", "Field") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).FieldByIndex(index []int) Value
|
||||
this.hasQualifiedName("reflect", "Value", "FieldByIndex") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).FieldByName(name string) Value
|
||||
this.hasQualifiedName("reflect", "Value", "FieldByName") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).FieldByNameFunc(match func(string) bool) Value
|
||||
this.hasQualifiedName("reflect", "Value", "FieldByNameFunc") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Float() float64
|
||||
this.hasQualifiedName("reflect", "Value", "Float") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Index(i int) Value
|
||||
this.hasQualifiedName("reflect", "Value", "Index") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Int() int64
|
||||
this.hasQualifiedName("reflect", "Value", "Int") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Interface() (i interface{})
|
||||
this.hasQualifiedName("reflect", "Value", "Interface") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).InterfaceData() [2]uintptr
|
||||
this.hasQualifiedName("reflect", "Value", "InterfaceData") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).MapIndex(key Value) Value
|
||||
this.hasQualifiedName("reflect", "Value", "MapIndex") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).MapKeys() []Value
|
||||
this.hasQualifiedName("reflect", "Value", "MapKeys") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).MapRange() *MapIter
|
||||
this.hasQualifiedName("reflect", "Value", "MapRange") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Method(i int) Value
|
||||
this.hasQualifiedName("reflect", "Value", "Method") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).MethodByName(name string) Value
|
||||
this.hasQualifiedName("reflect", "Value", "MethodByName") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Pointer() uintptr
|
||||
this.hasQualifiedName("reflect", "Value", "Pointer") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Recv() (x Value, ok bool)
|
||||
this.hasQualifiedName("reflect", "Value", "Recv") and
|
||||
(inp.isReceiver() and outp.isResult(0))
|
||||
or
|
||||
// signature: func (Value).Send(x Value)
|
||||
this.hasQualifiedName("reflect", "Value", "Send") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).Set(x Value)
|
||||
this.hasQualifiedName("reflect", "Value", "Set") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetBool(x bool)
|
||||
this.hasQualifiedName("reflect", "Value", "SetBool") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetBytes(x []byte)
|
||||
this.hasQualifiedName("reflect", "Value", "SetBytes") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetComplex(x complex128)
|
||||
this.hasQualifiedName("reflect", "Value", "SetComplex") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetFloat(x float64)
|
||||
this.hasQualifiedName("reflect", "Value", "SetFloat") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetInt(x int64)
|
||||
this.hasQualifiedName("reflect", "Value", "SetInt") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetMapIndex(key Value, elem Value)
|
||||
this.hasQualifiedName("reflect", "Value", "SetMapIndex") and
|
||||
(inp.isParameter(_) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetPointer(x unsafe.Pointer)
|
||||
this.hasQualifiedName("reflect", "Value", "SetPointer") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetString(x string)
|
||||
this.hasQualifiedName("reflect", "Value", "SetString") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).SetUint(x uint64)
|
||||
this.hasQualifiedName("reflect", "Value", "SetUint") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).Slice(i int, j int) Value
|
||||
this.hasQualifiedName("reflect", "Value", "Slice") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).Slice3(i int, j int, k int) Value
|
||||
this.hasQualifiedName("reflect", "Value", "Slice3") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).String() string
|
||||
this.hasQualifiedName("reflect", "Value", "String") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).TryRecv() (x Value, ok bool)
|
||||
this.hasQualifiedName("reflect", "Value", "TryRecv") and
|
||||
(inp.isReceiver() and outp.isResult(0))
|
||||
or
|
||||
// signature: func (Value).TrySend(x Value) bool
|
||||
this.hasQualifiedName("reflect", "Value", "TrySend") and
|
||||
(inp.isParameter(0) and outp.isReceiver())
|
||||
or
|
||||
// signature: func (Value).Uint() uint64
|
||||
this.hasQualifiedName("reflect", "Value", "Uint") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
or
|
||||
// signature: func (Value).UnsafeAddr() uintptr
|
||||
this.hasQualifiedName("reflect", "Value", "UnsafeAddr") and
|
||||
(inp.isReceiver() and outp.isResult())
|
||||
}
|
||||
|
||||
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
|
||||
input = inp and output = outp
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,621 @@
|
||||
// Code generated by https://github.com/gagliardetto/codebox. DO NOT EDIT.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
func TaintStepTest_ReflectAppend_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue656 := sourceCQL.(reflect.Value)
|
||||
intoValue414 := reflect.Append(fromValue656, reflect.Value{})
|
||||
return intoValue414
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectAppend_B0I1O0(sourceCQL interface{}) interface{} {
|
||||
fromValue518 := sourceCQL.(reflect.Value)
|
||||
intoValue650 := reflect.Append(reflect.Value{}, fromValue518)
|
||||
return intoValue650
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectAppend_B1I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue784 := sourceCQL.(reflect.Value)
|
||||
var intoValue957 reflect.Value
|
||||
reflect.Append(intoValue957, fromValue784)
|
||||
return intoValue957
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectAppendSlice_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue520 := sourceCQL.(reflect.Value)
|
||||
intoValue443 := reflect.AppendSlice(fromValue520, reflect.Value{})
|
||||
return intoValue443
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectAppendSlice_B0I1O0(sourceCQL interface{}) interface{} {
|
||||
fromValue127 := sourceCQL.(reflect.Value)
|
||||
intoValue483 := reflect.AppendSlice(reflect.Value{}, fromValue127)
|
||||
return intoValue483
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectAppendSlice_B1I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue989 := sourceCQL.(reflect.Value)
|
||||
var intoValue982 reflect.Value
|
||||
reflect.AppendSlice(intoValue982, fromValue989)
|
||||
return intoValue982
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectCopy_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue417 := sourceCQL.(reflect.Value)
|
||||
var intoValue584 reflect.Value
|
||||
reflect.Copy(intoValue584, fromValue417)
|
||||
return intoValue584
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectIndirect_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue991 := sourceCQL.(reflect.Value)
|
||||
intoValue881 := reflect.Indirect(fromValue991)
|
||||
return intoValue881
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueOf_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromInterface186 := sourceCQL.(interface{})
|
||||
intoValue284 := reflect.ValueOf(fromInterface186)
|
||||
return intoValue284
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectMapIterKey_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromMapIter908 := sourceCQL.(reflect.MapIter)
|
||||
intoValue137 := fromMapIter908.Key()
|
||||
return intoValue137
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectMapIterValue_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromMapIter494 := sourceCQL.(reflect.MapIter)
|
||||
intoValue873 := fromMapIter494.Value()
|
||||
return intoValue873
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectStructTagGet_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromStructTag599 := sourceCQL.(reflect.StructTag)
|
||||
intoString409 := fromStructTag599.Get("")
|
||||
return intoString409
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectStructTagLookup_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromStructTag246 := sourceCQL.(reflect.StructTag)
|
||||
intoString898, _ := fromStructTag246.Lookup("")
|
||||
return intoString898
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueAddr_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue598 := sourceCQL.(reflect.Value)
|
||||
intoValue631 := fromValue598.Addr()
|
||||
return intoValue631
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueBool_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue165 := sourceCQL.(reflect.Value)
|
||||
intoBool150 := fromValue165.Bool()
|
||||
return intoBool150
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueBytes_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue340 := sourceCQL.(reflect.Value)
|
||||
intoByte471 := fromValue340.Bytes()
|
||||
return intoByte471
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueComplex_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue290 := sourceCQL.(reflect.Value)
|
||||
intoComplex128758 := fromValue290.Complex()
|
||||
return intoComplex128758
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueConvert_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue396 := sourceCQL.(reflect.Value)
|
||||
intoValue707 := fromValue396.Convert(nil)
|
||||
return intoValue707
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueElem_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue912 := sourceCQL.(reflect.Value)
|
||||
intoValue718 := fromValue912.Elem()
|
||||
return intoValue718
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueField_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue972 := sourceCQL.(reflect.Value)
|
||||
intoValue633 := fromValue972.Field(0)
|
||||
return intoValue633
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueFieldByIndex_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue316 := sourceCQL.(reflect.Value)
|
||||
intoValue145 := fromValue316.FieldByIndex(nil)
|
||||
return intoValue145
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueFieldByName_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue817 := sourceCQL.(reflect.Value)
|
||||
intoValue474 := fromValue817.FieldByName("")
|
||||
return intoValue474
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueFieldByNameFunc_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue832 := sourceCQL.(reflect.Value)
|
||||
intoValue378 := fromValue832.FieldByNameFunc(nil)
|
||||
return intoValue378
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueFloat_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue541 := sourceCQL.(reflect.Value)
|
||||
intoFloat64139 := fromValue541.Float()
|
||||
return intoFloat64139
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueIndex_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue814 := sourceCQL.(reflect.Value)
|
||||
intoValue768 := fromValue814.Index(0)
|
||||
return intoValue768
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueInt_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue468 := sourceCQL.(reflect.Value)
|
||||
intoInt64736 := fromValue468.Int()
|
||||
return intoInt64736
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueInterface_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue516 := sourceCQL.(reflect.Value)
|
||||
intoInterface246 := fromValue516.Interface()
|
||||
return intoInterface246
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueInterfaceData_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue679 := sourceCQL.(reflect.Value)
|
||||
intoUintptr736 := fromValue679.InterfaceData()
|
||||
return intoUintptr736
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueMapIndex_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue839 := sourceCQL.(reflect.Value)
|
||||
intoValue273 := fromValue839.MapIndex(reflect.Value{})
|
||||
return intoValue273
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueMapKeys_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue982 := sourceCQL.(reflect.Value)
|
||||
intoValue458 := fromValue982.MapKeys()
|
||||
return intoValue458
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueMapRange_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue506 := sourceCQL.(reflect.Value)
|
||||
intoMapIter213 := fromValue506.MapRange()
|
||||
return intoMapIter213
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueMethod_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue468 := sourceCQL.(reflect.Value)
|
||||
intoValue219 := fromValue468.Method(0)
|
||||
return intoValue219
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueMethodByName_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue265 := sourceCQL.(reflect.Value)
|
||||
intoValue971 := fromValue265.MethodByName("")
|
||||
return intoValue971
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValuePointer_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue320 := sourceCQL.(reflect.Value)
|
||||
intoUintptr545 := fromValue320.Pointer()
|
||||
return intoUintptr545
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueRecv_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue566 := sourceCQL.(reflect.Value)
|
||||
intoValue497, _ := fromValue566.Recv()
|
||||
return intoValue497
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSend_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue274 := sourceCQL.(reflect.Value)
|
||||
var intoValue783 reflect.Value
|
||||
intoValue783.Send(fromValue274)
|
||||
return intoValue783
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSet_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue905 := sourceCQL.(reflect.Value)
|
||||
var intoValue389 reflect.Value
|
||||
intoValue389.Set(fromValue905)
|
||||
return intoValue389
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetBool_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromBool198 := sourceCQL.(bool)
|
||||
var intoValue477 reflect.Value
|
||||
intoValue477.SetBool(fromBool198)
|
||||
return intoValue477
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetBytes_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromByte544 := sourceCQL.([]byte)
|
||||
var intoValue382 reflect.Value
|
||||
intoValue382.SetBytes(fromByte544)
|
||||
return intoValue382
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetComplex_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromComplex128715 := sourceCQL.(complex128)
|
||||
var intoValue179 reflect.Value
|
||||
intoValue179.SetComplex(fromComplex128715)
|
||||
return intoValue179
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetFloat_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromFloat64366 := sourceCQL.(float64)
|
||||
var intoValue648 reflect.Value
|
||||
intoValue648.SetFloat(fromFloat64366)
|
||||
return intoValue648
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetInt_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromInt64544 := sourceCQL.(int64)
|
||||
var intoValue484 reflect.Value
|
||||
intoValue484.SetInt(fromInt64544)
|
||||
return intoValue484
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetMapIndex_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue824 := sourceCQL.(reflect.Value)
|
||||
var intoValue754 reflect.Value
|
||||
intoValue754.SetMapIndex(fromValue824, reflect.Value{})
|
||||
return intoValue754
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetMapIndex_B0I1O0(sourceCQL interface{}) interface{} {
|
||||
fromValue680 := sourceCQL.(reflect.Value)
|
||||
var intoValue722 reflect.Value
|
||||
intoValue722.SetMapIndex(reflect.Value{}, fromValue680)
|
||||
return intoValue722
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetPointer_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromPointer506 := sourceCQL.(unsafe.Pointer)
|
||||
var intoValue121 reflect.Value
|
||||
intoValue121.SetPointer(fromPointer506)
|
||||
return intoValue121
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetString_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromString293 := sourceCQL.(string)
|
||||
var intoValue151 reflect.Value
|
||||
intoValue151.SetString(fromString293)
|
||||
return intoValue151
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSetUint_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromUint64849 := sourceCQL.(uint64)
|
||||
var intoValue322 reflect.Value
|
||||
intoValue322.SetUint(fromUint64849)
|
||||
return intoValue322
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSlice_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue339 := sourceCQL.(reflect.Value)
|
||||
intoValue478 := fromValue339.Slice(0, 0)
|
||||
return intoValue478
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueSlice3_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue399 := sourceCQL.(reflect.Value)
|
||||
intoValue426 := fromValue399.Slice3(0, 0, 0)
|
||||
return intoValue426
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueString_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue628 := sourceCQL.(reflect.Value)
|
||||
intoString197 := fromValue628.String()
|
||||
return intoString197
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueTryRecv_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue216 := sourceCQL.(reflect.Value)
|
||||
intoValue742, _ := fromValue216.TryRecv()
|
||||
return intoValue742
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueTrySend_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue906 := sourceCQL.(reflect.Value)
|
||||
var intoValue620 reflect.Value
|
||||
intoValue620.TrySend(fromValue906)
|
||||
return intoValue620
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueUint_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue158 := sourceCQL.(reflect.Value)
|
||||
intoUint64353 := fromValue158.Uint()
|
||||
return intoUint64353
|
||||
}
|
||||
|
||||
func TaintStepTest_ReflectValueUnsafeAddr_B0I0O0(sourceCQL interface{}) interface{} {
|
||||
fromValue625 := sourceCQL.(reflect.Value)
|
||||
intoUintptr340 := fromValue625.UnsafeAddr()
|
||||
return intoUintptr340
|
||||
}
|
||||
|
||||
func RunAllTaints_Reflect() {
|
||||
{
|
||||
source := newSource(0)
|
||||
out := TaintStepTest_ReflectAppend_B0I0O0(source)
|
||||
sink(0, out)
|
||||
}
|
||||
{
|
||||
source := newSource(1)
|
||||
out := TaintStepTest_ReflectAppend_B0I1O0(source)
|
||||
sink(1, out)
|
||||
}
|
||||
{
|
||||
source := newSource(2)
|
||||
out := TaintStepTest_ReflectAppend_B1I0O0(source)
|
||||
sink(2, out)
|
||||
}
|
||||
{
|
||||
source := newSource(3)
|
||||
out := TaintStepTest_ReflectAppendSlice_B0I0O0(source)
|
||||
sink(3, out)
|
||||
}
|
||||
{
|
||||
source := newSource(4)
|
||||
out := TaintStepTest_ReflectAppendSlice_B0I1O0(source)
|
||||
sink(4, out)
|
||||
}
|
||||
{
|
||||
source := newSource(5)
|
||||
out := TaintStepTest_ReflectAppendSlice_B1I0O0(source)
|
||||
sink(5, out)
|
||||
}
|
||||
{
|
||||
source := newSource(6)
|
||||
out := TaintStepTest_ReflectCopy_B0I0O0(source)
|
||||
sink(6, out)
|
||||
}
|
||||
{
|
||||
source := newSource(7)
|
||||
out := TaintStepTest_ReflectIndirect_B0I0O0(source)
|
||||
sink(7, out)
|
||||
}
|
||||
{
|
||||
source := newSource(8)
|
||||
out := TaintStepTest_ReflectValueOf_B0I0O0(source)
|
||||
sink(8, out)
|
||||
}
|
||||
{
|
||||
source := newSource(9)
|
||||
out := TaintStepTest_ReflectMapIterKey_B0I0O0(source)
|
||||
sink(9, out)
|
||||
}
|
||||
{
|
||||
source := newSource(10)
|
||||
out := TaintStepTest_ReflectMapIterValue_B0I0O0(source)
|
||||
sink(10, out)
|
||||
}
|
||||
{
|
||||
source := newSource(11)
|
||||
out := TaintStepTest_ReflectStructTagGet_B0I0O0(source)
|
||||
sink(11, out)
|
||||
}
|
||||
{
|
||||
source := newSource(12)
|
||||
out := TaintStepTest_ReflectStructTagLookup_B0I0O0(source)
|
||||
sink(12, out)
|
||||
}
|
||||
{
|
||||
source := newSource(13)
|
||||
out := TaintStepTest_ReflectValueAddr_B0I0O0(source)
|
||||
sink(13, out)
|
||||
}
|
||||
{
|
||||
source := newSource(14)
|
||||
out := TaintStepTest_ReflectValueBool_B0I0O0(source)
|
||||
sink(14, out)
|
||||
}
|
||||
{
|
||||
source := newSource(15)
|
||||
out := TaintStepTest_ReflectValueBytes_B0I0O0(source)
|
||||
sink(15, out)
|
||||
}
|
||||
{
|
||||
source := newSource(16)
|
||||
out := TaintStepTest_ReflectValueComplex_B0I0O0(source)
|
||||
sink(16, out)
|
||||
}
|
||||
{
|
||||
source := newSource(17)
|
||||
out := TaintStepTest_ReflectValueConvert_B0I0O0(source)
|
||||
sink(17, out)
|
||||
}
|
||||
{
|
||||
source := newSource(18)
|
||||
out := TaintStepTest_ReflectValueElem_B0I0O0(source)
|
||||
sink(18, out)
|
||||
}
|
||||
{
|
||||
source := newSource(19)
|
||||
out := TaintStepTest_ReflectValueField_B0I0O0(source)
|
||||
sink(19, out)
|
||||
}
|
||||
{
|
||||
source := newSource(20)
|
||||
out := TaintStepTest_ReflectValueFieldByIndex_B0I0O0(source)
|
||||
sink(20, out)
|
||||
}
|
||||
{
|
||||
source := newSource(21)
|
||||
out := TaintStepTest_ReflectValueFieldByName_B0I0O0(source)
|
||||
sink(21, out)
|
||||
}
|
||||
{
|
||||
source := newSource(22)
|
||||
out := TaintStepTest_ReflectValueFieldByNameFunc_B0I0O0(source)
|
||||
sink(22, out)
|
||||
}
|
||||
{
|
||||
source := newSource(23)
|
||||
out := TaintStepTest_ReflectValueFloat_B0I0O0(source)
|
||||
sink(23, out)
|
||||
}
|
||||
{
|
||||
source := newSource(24)
|
||||
out := TaintStepTest_ReflectValueIndex_B0I0O0(source)
|
||||
sink(24, out)
|
||||
}
|
||||
{
|
||||
source := newSource(25)
|
||||
out := TaintStepTest_ReflectValueInt_B0I0O0(source)
|
||||
sink(25, out)
|
||||
}
|
||||
{
|
||||
source := newSource(26)
|
||||
out := TaintStepTest_ReflectValueInterface_B0I0O0(source)
|
||||
sink(26, out)
|
||||
}
|
||||
{
|
||||
source := newSource(27)
|
||||
out := TaintStepTest_ReflectValueInterfaceData_B0I0O0(source)
|
||||
sink(27, out)
|
||||
}
|
||||
{
|
||||
source := newSource(28)
|
||||
out := TaintStepTest_ReflectValueMapIndex_B0I0O0(source)
|
||||
sink(28, out)
|
||||
}
|
||||
{
|
||||
source := newSource(29)
|
||||
out := TaintStepTest_ReflectValueMapKeys_B0I0O0(source)
|
||||
sink(29, out)
|
||||
}
|
||||
{
|
||||
source := newSource(30)
|
||||
out := TaintStepTest_ReflectValueMapRange_B0I0O0(source)
|
||||
sink(30, out)
|
||||
}
|
||||
{
|
||||
source := newSource(31)
|
||||
out := TaintStepTest_ReflectValueMethod_B0I0O0(source)
|
||||
sink(31, out)
|
||||
}
|
||||
{
|
||||
source := newSource(32)
|
||||
out := TaintStepTest_ReflectValueMethodByName_B0I0O0(source)
|
||||
sink(32, out)
|
||||
}
|
||||
{
|
||||
source := newSource(33)
|
||||
out := TaintStepTest_ReflectValuePointer_B0I0O0(source)
|
||||
sink(33, out)
|
||||
}
|
||||
{
|
||||
source := newSource(34)
|
||||
out := TaintStepTest_ReflectValueRecv_B0I0O0(source)
|
||||
sink(34, out)
|
||||
}
|
||||
{
|
||||
source := newSource(35)
|
||||
out := TaintStepTest_ReflectValueSend_B0I0O0(source)
|
||||
sink(35, out)
|
||||
}
|
||||
{
|
||||
source := newSource(36)
|
||||
out := TaintStepTest_ReflectValueSet_B0I0O0(source)
|
||||
sink(36, out)
|
||||
}
|
||||
{
|
||||
source := newSource(37)
|
||||
out := TaintStepTest_ReflectValueSetBool_B0I0O0(source)
|
||||
sink(37, out)
|
||||
}
|
||||
{
|
||||
source := newSource(38)
|
||||
out := TaintStepTest_ReflectValueSetBytes_B0I0O0(source)
|
||||
sink(38, out)
|
||||
}
|
||||
{
|
||||
source := newSource(39)
|
||||
out := TaintStepTest_ReflectValueSetComplex_B0I0O0(source)
|
||||
sink(39, out)
|
||||
}
|
||||
{
|
||||
source := newSource(40)
|
||||
out := TaintStepTest_ReflectValueSetFloat_B0I0O0(source)
|
||||
sink(40, out)
|
||||
}
|
||||
{
|
||||
source := newSource(41)
|
||||
out := TaintStepTest_ReflectValueSetInt_B0I0O0(source)
|
||||
sink(41, out)
|
||||
}
|
||||
{
|
||||
source := newSource(42)
|
||||
out := TaintStepTest_ReflectValueSetMapIndex_B0I0O0(source)
|
||||
sink(42, out)
|
||||
}
|
||||
{
|
||||
source := newSource(43)
|
||||
out := TaintStepTest_ReflectValueSetMapIndex_B0I1O0(source)
|
||||
sink(43, out)
|
||||
}
|
||||
{
|
||||
source := newSource(44)
|
||||
out := TaintStepTest_ReflectValueSetPointer_B0I0O0(source)
|
||||
sink(44, out)
|
||||
}
|
||||
{
|
||||
source := newSource(45)
|
||||
out := TaintStepTest_ReflectValueSetString_B0I0O0(source)
|
||||
sink(45, out)
|
||||
}
|
||||
{
|
||||
source := newSource(46)
|
||||
out := TaintStepTest_ReflectValueSetUint_B0I0O0(source)
|
||||
sink(46, out)
|
||||
}
|
||||
{
|
||||
source := newSource(47)
|
||||
out := TaintStepTest_ReflectValueSlice_B0I0O0(source)
|
||||
sink(47, out)
|
||||
}
|
||||
{
|
||||
source := newSource(48)
|
||||
out := TaintStepTest_ReflectValueSlice3_B0I0O0(source)
|
||||
sink(48, out)
|
||||
}
|
||||
{
|
||||
source := newSource(49)
|
||||
out := TaintStepTest_ReflectValueString_B0I0O0(source)
|
||||
sink(49, out)
|
||||
}
|
||||
{
|
||||
source := newSource(50)
|
||||
out := TaintStepTest_ReflectValueTryRecv_B0I0O0(source)
|
||||
sink(50, out)
|
||||
}
|
||||
{
|
||||
source := newSource(51)
|
||||
out := TaintStepTest_ReflectValueTrySend_B0I0O0(source)
|
||||
sink(51, out)
|
||||
}
|
||||
{
|
||||
source := newSource(52)
|
||||
out := TaintStepTest_ReflectValueUint_B0I0O0(source)
|
||||
sink(52, out)
|
||||
}
|
||||
{
|
||||
source := newSource(53)
|
||||
out := TaintStepTest_ReflectValueUnsafeAddr_B0I0O0(source)
|
||||
sink(53, out)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user