@@ -274,7 +274,7 @@ private predicate summaryModelCsv(string row) {
274274 "java.io;File;false;toURI;;;Argument[-1];ReturnValue;taint" ,
275275 "java.io;File;false;toPath;;;Argument[-1];ReturnValue;taint" ,
276276 "java.nio.file;Path;false;toFile;;;Argument[-1];ReturnValue;taint" ,
277- "java.io;Reader ;true;readLine;;;Argument[-1];ReturnValue;taint" ,
277+ "java.io;BufferedReader ;true;readLine;;;Argument[-1];ReturnValue;taint" ,
278278 "java.io;Reader;true;read;();;Argument[-1];ReturnValue;taint" ,
279279 // arg to return
280280 "java.util;Base64$Encoder;false;encode;(byte[]);;Argument[0];ReturnValue;taint" ,
@@ -285,8 +285,12 @@ private predicate summaryModelCsv(string row) {
285285 "java.util;Base64$Decoder;false;decode;(ByteBuffer);;Argument[0];ReturnValue;taint" ,
286286 "java.util;Base64$Decoder;false;decode;(String);;Argument[0];ReturnValue;taint" ,
287287 "java.util;Base64$Decoder;false;wrap;(InputStream);;Argument[0];ReturnValue;taint" ,
288- "org.apache.commons.codec;Encoder;true;encode;;;Argument[0];ReturnValue;taint" ,
289- "org.apache.commons.codec;Decoder;true;decode;;;Argument[0];ReturnValue;taint" ,
288+ "org.apache.commons.codec;Encoder;true;encode;(Object);;Argument[0];ReturnValue;taint" ,
289+ "org.apache.commons.codec;Decoder;true;decode;(Object);;Argument[0];ReturnValue;taint" ,
290+ "org.apache.commons.codec;BinaryEncoder;true;encode;(byte[]);;Argument[0];ReturnValue;taint" ,
291+ "org.apache.commons.codec;BinaryDecoder;true;decode;(byte[]);;Argument[0];ReturnValue;taint" ,
292+ "org.apache.commons.codec;StringEncoder;true;encode;(String);;Argument[0];ReturnValue;taint" ,
293+ "org.apache.commons.codec;StringDecoder;true;decode;(String);;Argument[0];ReturnValue;taint" ,
290294 "org.apache.commons.io;IOUtils;false;buffer;;;Argument[0];ReturnValue;taint" ,
291295 "org.apache.commons.io;IOUtils;false;readLines;;;Argument[0];ReturnValue;taint" ,
292296 "org.apache.commons.io;IOUtils;false;readFully;(InputStream,int);;Argument[0];ReturnValue;taint" ,
@@ -586,14 +590,6 @@ private predicate elementSpec(
586590 summaryModel ( namespace , type , subtypes , name , signature , ext , _, _, _)
587591}
588592
589- bindingset [ namespace, type, subtypes]
590- private RefType interpretType ( string namespace , string type , boolean subtypes ) {
591- exists ( RefType t |
592- t .hasQualifiedName ( namespace , type ) and
593- if subtypes = true then result .getASourceSupertype * ( ) = t else result = t
594- )
595- }
596-
597593private string paramsStringPart ( Callable c , int i ) {
598594 i = - 1 and result = "("
599595 or
@@ -614,9 +610,13 @@ private Element interpretElement0(
614610 string namespace , string type , boolean subtypes , string name , string signature
615611) {
616612 elementSpec ( namespace , type , subtypes , name , signature , _) and
617- exists ( RefType t | t = interpretType ( namespace , type , subtypes ) |
613+ exists ( RefType t | t . hasQualifiedName ( namespace , type ) |
618614 exists ( Member m |
619- result = m and
615+ (
616+ result = m
617+ or
618+ subtypes = true and result .( SrcMethod ) .overridesOrInstantiates + ( m )
619+ ) and
620620 m .getDeclaringType ( ) = t and
621621 m .hasName ( name )
622622 |
@@ -625,7 +625,7 @@ private Element interpretElement0(
625625 paramsString ( m ) = signature
626626 )
627627 or
628- result = t and
628+ ( if subtypes = true then result . ( SrcRefType ) . getASourceSupertype * ( ) = t else result = t ) and
629629 name = "" and
630630 signature = ""
631631 )
0 commit comments