Skip to content

Commit 879551f

Browse files
authored
Merge pull request github#3936 from aibaars/object-clone
Java: model Object.clone
2 parents c8b9b77 + e183171 commit 879551f

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

java/ql/src/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,8 @@ private predicate qualifierToMethodStep(Expr tracked, MethodAccess sink) {
310310
* Methods that return tainted data when called on tainted data.
311311
*/
312312
private predicate taintPreservingQualifierToMethod(Method m) {
313+
m instanceof CloneMethod
314+
or
313315
m.getDeclaringType() instanceof TypeString and
314316
(
315317
m.getName() = "concat" or

java/ql/test/library-tests/dataflow/local-additional-taint/Test.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
import org.apache.commons.codec.BinaryDecoder;
55
import org.apache.commons.codec.StringEncoder;
66
import org.apache.commons.codec.StringDecoder;
7-
8-
7+
import java.util.Date;
98

109
class Test {
1110
public static void taintSteps(
11+
Date date,
1212
Decoder decoder,
1313
Encoder encoder,
1414
StringEncoder stringEncoder,
@@ -29,5 +29,7 @@ public static void taintSteps(
2929

3030
bytes1 = binEncoder.encode(bytes2);
3131
bytes1 = binDecoder.decode(bytes2);
32+
33+
Object clone = date.clone();
3234
}
3335
}

java/ql/test/library-tests/dataflow/local-additional-taint/localAdditionalTaintStep.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,4 @@
6262
| Test.java:28:34:28:40 | string2 | Test.java:28:13:28:41 | encode(...) |
6363
| Test.java:30:30:30:35 | bytes2 | Test.java:30:12:30:36 | encode(...) |
6464
| Test.java:31:30:31:35 | bytes2 | Test.java:31:12:31:36 | decode(...) |
65+
| Test.java:33:18:33:21 | date | Test.java:33:18:33:29 | clone(...) |

0 commit comments

Comments
 (0)