Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b8809a2

Browse files
author
Benjamin Muskalla
committed
Support propagating taint of inner object
1 parent 2d4176b commit b8809a2

3 files changed

Lines changed: 9 additions & 1 deletion

File tree

java/ql/src/utils/model-generator/CaptureSummaryModels.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*/
66

77
import java
8-
import ModelGeneratorUtils
98
import semmle.code.java.dataflow.TaintTracking
109
import semmle.code.java.dataflow.internal.DataFlowImplCommon
1110
import semmle.code.java.dataflow.internal.DataFlowNodes
@@ -148,6 +147,8 @@ private predicate thisAccess(DataFlow::Node n) {
148147
n.asExpr().(InstanceAccess).isOwnInstanceAccess()
149148
or
150149
n.(DataFlow::ImplicitInstanceAccess).getInstanceAccess() instanceof OwnInstanceAccess
150+
or
151+
n.asExpr().(FieldAccess).isOwnFieldAccess()
151152
}
152153

153154
/**

java/ql/test/utils/model-generator/CaptureSummaryModels.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
| p;ImmutablePojo;false;or;(String);;Argument[0];ReturnValue;taint |
1010
| p;InnerClasses$CaptureMe;true;yesCm;(String);;Argument[0];ReturnValue;taint |
1111
| p;InnerClasses;true;yes;(String);;Argument[0];ReturnValue;taint |
12+
| p;InnerHolder;false;append;(String);;Argument[0];Argument[-1];taint |
1213
| p;InnerHolder;false;explicitSetContext;(String);;Argument[0];Argument[-1];taint |
1314
| p;InnerHolder;false;getValue;();;Argument[-1];ReturnValue;taint |
1415
| p;InnerHolder;false;setContext;(String);;Argument[0];Argument[-1];taint |

java/ql/test/utils/model-generator/p/InnerHolder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ public String getValue() {
1616

1717
private Context context = null;
1818

19+
private StringBuilder sb = new StringBuilder();
20+
1921
public void setContext(String value) {
2022
context = new Context(value);
2123
}
@@ -24,6 +26,10 @@ public void explicitSetContext(String value) {
2426
this.context = new Context(value);
2527
}
2628

29+
public void append(String value) {
30+
sb.append(value);
31+
}
32+
2733
public String getValue() {
2834
return context.getValue();
2935
}

0 commit comments

Comments
 (0)