@@ -14,15 +14,6 @@ class TypeApacheRandomStringUtils extends Class {
1414 }
1515}
1616
17- /**
18- * The class `org.apache.commons.lang.ArrayUtils` or `org.apache.commons.lang3.ArrayUtils`.
19- */
20- class TypeApacheArrayUtils extends Class {
21- TypeApacheArrayUtils ( ) {
22- hasQualifiedName ( [ "org.apache.commons.lang" , "org.apache.commons.lang3" ] , "ArrayUtils" )
23- }
24- }
25-
2617/**
2718 * The method `deserialize` in either `org.apache.commons.lang.SerializationUtils`
2819 * or `org.apache.commons.lang3.SerializationUtils`.
@@ -37,39 +28,45 @@ class MethodApacheSerializationUtilsDeserialize extends Method {
3728}
3829
3930/**
40- * A taint preserving method on `org.apache.commons.lang. ArrayUtils` or `org.apache.commons.lang3.ArrayUtils`
31+ * Taint-propagating models for ` ArrayUtils`.
4132 */
42- private class ApacheLangArrayUtilsTaintPreservingMethod extends TaintPreservingCallable {
43- ApacheLangArrayUtilsTaintPreservingMethod ( ) {
44- this .getDeclaringType ( ) instanceof TypeApacheArrayUtils
45- }
46-
47- override predicate returnsTaintFrom ( int src ) {
48- this .hasName ( [ "addAll" , "addFirst" ] ) and
49- src = [ 0 .. getNumberOfParameters ( ) - 1 ]
50- or
51- this .hasName ( [
52- "clone" , "nullToEmpty" , "remove" , "removeAll" , "removeElement" , "removeElements" ,
53- "subarray" , "toArray" , "toMap" , "toObject" , "removeAllOccurences" , "removeAllOccurrences"
54- ] ) and
55- src = 0
56- or
57- this .hasName ( "toPrimitive" ) and
58- src = [ 0 , 1 ]
59- or
60- this .hasName ( "add" ) and
61- this .getNumberOfParameters ( ) = 2 and
62- src = [ 0 , 1 ]
63- or
64- this .hasName ( [ "add" ] ) and
65- this .getNumberOfParameters ( ) = 3 and
66- src = [ 0 , 2 ]
67- or
68- this .hasName ( "insert" ) and
69- src = [ 1 , 2 ]
70- or
71- this .hasName ( "get" ) and
72- src = [ 0 , 2 ]
33+ private class ApacheArrayUtilsModel extends SummaryModelCsv {
34+ override predicate row ( string row ) {
35+ row =
36+ [
37+ "org.apache.commons.lang3;ArrayUtils;false;add;;;Argument[0];ReturnValue;taint" ,
38+ "org.apache.commons.lang3;ArrayUtils;false;add;;;Argument[2];ReturnValue;taint" ,
39+ "org.apache.commons.lang3;ArrayUtils;false;add;(java.lang.Object[],java.lang.Object);;Argument[1];ReturnValue;taint" ,
40+ "org.apache.commons.lang3;ArrayUtils;false;add;(boolean[],boolean);;Argument[1];ReturnValue;taint" ,
41+ "org.apache.commons.lang3;ArrayUtils;false;add;(byte[],byte);;Argument[1];ReturnValue;taint" ,
42+ "org.apache.commons.lang3;ArrayUtils;false;add;(char[],char);;Argument[1];ReturnValue;taint" ,
43+ "org.apache.commons.lang3;ArrayUtils;false;add;(double[],double);;Argument[1];ReturnValue;taint" ,
44+ "org.apache.commons.lang3;ArrayUtils;false;add;(float[],float);;Argument[1];ReturnValue;taint" ,
45+ "org.apache.commons.lang3;ArrayUtils;false;add;(int[],int);;Argument[1];ReturnValue;taint" ,
46+ "org.apache.commons.lang3;ArrayUtils;false;add;(long[],long);;Argument[1];ReturnValue;taint" ,
47+ "org.apache.commons.lang3;ArrayUtils;false;add;(short[],short);;Argument[1];ReturnValue;taint" ,
48+ "org.apache.commons.lang3;ArrayUtils;false;addAll;;;Argument;ReturnValue;taint" ,
49+ "org.apache.commons.lang3;ArrayUtils;false;addFirst;;;Argument;ReturnValue;taint" ,
50+ "org.apache.commons.lang3;ArrayUtils;false;clone;;;Argument;ReturnValue;taint" ,
51+ "org.apache.commons.lang3;ArrayUtils;false;get;(java.lang.Object[],int,java.lang.Object);;Argument[2];ReturnValue;taint" ,
52+ "org.apache.commons.lang3;ArrayUtils;false;get;;;Argument[0];ReturnValue;taint" ,
53+ "org.apache.commons.lang3;ArrayUtils;false;insert;;;Argument[1];ReturnValue;taint" ,
54+ "org.apache.commons.lang3;ArrayUtils;false;insert;;;Argument[2];ReturnValue;taint" ,
55+ "org.apache.commons.lang3;ArrayUtils;false;insert;;;Argument[3];ReturnValue;taint" ,
56+ "org.apache.commons.lang3;ArrayUtils;false;nullToEmpty;(java.lang.Object[],java.lang.Class);;Argument[0];ReturnValue;taint" ,
57+ "org.apache.commons.lang3;ArrayUtils;false;nullToEmpty;(java.lang.String[]);;Argument;ReturnValue;taint" ,
58+ "org.apache.commons.lang3;ArrayUtils;false;remove;;;Argument[0];ReturnValue;taint" ,
59+ "org.apache.commons.lang3;ArrayUtils;false;removeAll;;;Argument[0];ReturnValue;taint" ,
60+ "org.apache.commons.lang3;ArrayUtils;false;removeAllOccurences;;;Argument[0];ReturnValue;taint" ,
61+ "org.apache.commons.lang3;ArrayUtils;false;removeAllOccurrences;;;Argument[0];ReturnValue;taint" ,
62+ "org.apache.commons.lang3;ArrayUtils;false;removeElement;;;Argument[0];ReturnValue;taint" ,
63+ "org.apache.commons.lang3;ArrayUtils;false;removeElements;;;Argument[0];ReturnValue;taint" ,
64+ "org.apache.commons.lang3;ArrayUtils;false;subarray;;;Argument[0];ReturnValue;taint" ,
65+ "org.apache.commons.lang3;ArrayUtils;false;toArray;;;Argument;ReturnValue;taint" ,
66+ "org.apache.commons.lang3;ArrayUtils;false;toMap;;;Argument;ReturnValue;taint" ,
67+ "org.apache.commons.lang3;ArrayUtils;false;toObject;;;Argument;ReturnValue;taint" ,
68+ "org.apache.commons.lang3;ArrayUtils;false;toPrimitive;;;Argument;ReturnValue;taint"
69+ ]
7370 }
7471}
7572
0 commit comments