Remove encoder taint-tracking for encoding/base64

This commit is contained in:
Slavomir
2020-09-09 13:48:19 +02:00
parent 0baca5fa6c
commit 96a700becb
2 changed files with 9 additions and 59 deletions

View File

@@ -14,10 +14,6 @@ module EncodingBase64 {
// signature: func NewDecoder(enc *Encoding, r io.Reader) io.Reader
hasQualifiedName("encoding/base64", "NewDecoder") and
(inp.isParameter(1) and outp.isResult())
or
// signature: func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser
hasQualifiedName("encoding/base64", "NewEncoder") and
(inp.isResult() and outp.isParameter(1))
}
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
@@ -37,14 +33,6 @@ module EncodingBase64 {
// signature: func (*Encoding).DecodeString(s string) ([]byte, error)
this.hasQualifiedName("encoding/base64", "Encoding", "DecodeString") and
(inp.isParameter(0) and outp.isResult(0))
or
// signature: func (*Encoding).Encode(dst []byte, src []byte)
this.hasQualifiedName("encoding/base64", "Encoding", "Encode") and
(inp.isParameter(1) and outp.isParameter(0))
or
// signature: func (*Encoding).EncodeToString(src []byte) string
this.hasQualifiedName("encoding/base64", "Encoding", "EncodeToString") and
(inp.isParameter(0) and outp.isResult())
}
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {

View File

@@ -13,42 +13,19 @@ func TaintStepTest_EncodingBase64NewDecoder_B0I0O0(sourceCQL interface{}) interf
return intoReader414
}
func TaintStepTest_EncodingBase64NewEncoder_B0I0O0(sourceCQL interface{}) interface{} {
fromWriteCloser518 := sourceCQL.(io.WriteCloser)
var intoWriter650 io.Writer
intermediateCQL := base64.NewEncoder(nil, intoWriter650)
link(fromWriteCloser518, intermediateCQL)
return intoWriter650
}
func TaintStepTest_EncodingBase64EncodingDecode_B0I0O0(sourceCQL interface{}) interface{} {
fromByte784 := sourceCQL.([]byte)
var intoByte957 []byte
fromByte518 := sourceCQL.([]byte)
var intoByte650 []byte
var mediumObjCQL base64.Encoding
mediumObjCQL.Decode(intoByte957, fromByte784)
return intoByte957
mediumObjCQL.Decode(intoByte650, fromByte518)
return intoByte650
}
func TaintStepTest_EncodingBase64EncodingDecodeString_B0I0O0(sourceCQL interface{}) interface{} {
fromString520 := sourceCQL.(string)
fromString784 := sourceCQL.(string)
var mediumObjCQL base64.Encoding
intoByte443, _ := mediumObjCQL.DecodeString(fromString520)
return intoByte443
}
func TaintStepTest_EncodingBase64EncodingEncode_B0I0O0(sourceCQL interface{}) interface{} {
fromByte127 := sourceCQL.([]byte)
var intoByte483 []byte
var mediumObjCQL base64.Encoding
mediumObjCQL.Encode(intoByte483, fromByte127)
return intoByte483
}
func TaintStepTest_EncodingBase64EncodingEncodeToString_B0I0O0(sourceCQL interface{}) interface{} {
fromByte989 := sourceCQL.([]byte)
var mediumObjCQL base64.Encoding
intoString982 := mediumObjCQL.EncodeToString(fromByte989)
return intoString982
intoByte957, _ := mediumObjCQL.DecodeString(fromString784)
return intoByte957
}
func RunAllTaints_EncodingBase64() {
@@ -59,27 +36,12 @@ func RunAllTaints_EncodingBase64() {
}
{
source := newSource(1)
out := TaintStepTest_EncodingBase64NewEncoder_B0I0O0(source)
out := TaintStepTest_EncodingBase64EncodingDecode_B0I0O0(source)
sink(1, out)
}
{
source := newSource(2)
out := TaintStepTest_EncodingBase64EncodingDecode_B0I0O0(source)
out := TaintStepTest_EncodingBase64EncodingDecodeString_B0I0O0(source)
sink(2, out)
}
{
source := newSource(3)
out := TaintStepTest_EncodingBase64EncodingDecodeString_B0I0O0(source)
sink(3, out)
}
{
source := newSource(4)
out := TaintStepTest_EncodingBase64EncodingEncode_B0I0O0(source)
sink(4, out)
}
{
source := newSource(5)
out := TaintStepTest_EncodingBase64EncodingEncodeToString_B0I0O0(source)
sink(5, out)
}
}