@@ -35,11 +35,11 @@ predicate localTaintStep(DataFlow::Node src, DataFlow::Node sink) {
3535}
3636
3737private Type getElementType ( Type containerType ) {
38- result = containerType .( ArrayType ) .getElementType ( ) or
39- result = containerType .( SliceType ) .getElementType ( ) or
40- result = containerType .( ChanType ) .getElementType ( ) or
41- result = containerType .( MapType ) .getValueType ( ) or
42- result = containerType .( PointerType ) .getPointerType ( )
38+ result = containerType .getDeepUnaliasedType ( ) . ( ArrayType ) .getElementType ( ) or
39+ result = containerType .getDeepUnaliasedType ( ) . ( SliceType ) .getElementType ( ) or
40+ result = containerType .getDeepUnaliasedType ( ) . ( ChanType ) .getElementType ( ) or
41+ result = containerType .getDeepUnaliasedType ( ) . ( MapType ) .getValueType ( ) or
42+ result = containerType .getDeepUnaliasedType ( ) . ( PointerType ) .getPointerType ( )
4343}
4444
4545/**
@@ -50,7 +50,7 @@ bindingset[node]
5050predicate defaultImplicitTaintRead ( DataFlow:: Node node , DataFlow:: ContentSet cs ) {
5151 exists ( Type containerType , DataFlow:: Content c |
5252 node instanceof DataFlow:: ArgumentNode and
53- getElementType * ( node .getType ( ) ) = containerType and
53+ getElementType * ( node .getType ( ) ) . getDeepUnaliasedType ( ) = containerType and
5454 cs .asOneContent ( ) = c
5555 |
5656 containerType instanceof ArrayType and
@@ -65,7 +65,7 @@ predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet cs)
6565 containerType instanceof MapType and
6666 c instanceof DataFlow:: MapValueContent
6767 or
68- c .( DataFlow:: PointerContent ) .getPointerType ( ) = containerType
68+ c .( DataFlow:: PointerContent ) .getPointerType ( ) . getDeepUnaliasedType ( ) = containerType
6969 )
7070}
7171
0 commit comments