Skip to content

Commit aae8079

Browse files
committed
temp
1 parent bc4462e commit aae8079

File tree

3 files changed

+28
-25
lines changed

3 files changed

+28
-25
lines changed

java/ql/lib/semmle/code/java/security/TaintedPathQuery.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ module TaintedPathConfig implements DataFlow::ConfigSig {
6666

6767
predicate isBarrier(DataFlow::Node sanitizer) {
6868
sanitizer instanceof SimpleTypeSanitizer or
69-
sanitizer instanceof PathInjectionSanitizer or
70-
sanitizer.getLocation().getFile().getBaseName() =
71-
["BaseObject.java", "SimpleNode.java", "Context.java"]
69+
sanitizer instanceof PathInjectionSanitizer //or
70+
// sanitizer.getLocation().getFile().getBaseName() =
71+
// ["BaseObject.java", "SimpleNode.java", "Context.java"]
7272
}
7373

7474
predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) {

java/ql/test/library-tests/dataflow/call-sensitivity/flow.expected

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ edges
3636
=======
3737
| A2.java:15:15:15:28 | new Integer(...) : Number | A2.java:27:27:27:34 | o : Number |
3838
| A2.java:27:27:27:34 | o : Number | A2.java:29:9:29:9 | o |
39-
| A.java:6:28:6:35 | o : Object | A.java:8:11:8:11 | o : Object |
40-
| A.java:6:28:6:35 | o : Object | A.java:8:11:8:11 | o : Object |
39+
| A.java:6:28:6:35 | o : Number | A.java:8:11:8:11 | o : Number |
40+
| A.java:6:28:6:35 | o : Number | A.java:8:11:8:11 | o : Number |
4141
| A.java:14:29:14:36 | o : Number | A.java:16:9:16:9 | o |
4242
| A.java:20:30:20:37 | o : Number | A.java:22:9:22:9 | o |
4343
| A.java:26:31:26:38 | o : Number | A.java:28:9:28:9 | o |
@@ -52,14 +52,14 @@ edges
5252
| A.java:66:25:66:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number |
5353
| A.java:67:25:67:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number |
5454
| A.java:68:25:68:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number |
55-
| A.java:69:20:69:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Object |
55+
| A.java:69:20:69:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Number |
5656
| A.java:69:20:69:33 | new Integer(...) : Number | A.java:69:8:69:40 | flowThrough(...) |
5757
| A.java:71:25:71:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number |
5858
| A.java:84:18:84:31 | new Integer(...) : Number | A.java:14:29:14:36 | o : Number |
5959
| A.java:85:19:85:32 | new Integer(...) : Number | A.java:20:30:20:37 | o : Number |
6060
| A.java:86:20:86:33 | new Integer(...) : Number | A.java:26:31:26:38 | o : Number |
6161
| A.java:87:24:87:37 | new Integer(...) : Number | A.java:32:35:32:42 | o : Number |
62-
| A.java:88:20:88:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Object |
62+
| A.java:88:20:88:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Number |
6363
| A.java:88:20:88:33 | new Integer(...) : Number | A.java:88:8:88:37 | flowThrough(...) |
6464
| A.java:99:20:99:33 | new Integer(...) : Number | A.java:106:30:106:37 | o : Number |
6565
| A.java:100:21:100:34 | new Integer(...) : Number | A.java:113:31:113:38 | o : Number |
@@ -72,10 +72,10 @@ nodes
7272
| A2.java:15:15:15:28 | new Integer(...) : Number | semmle.label | new Integer(...) : Number |
7373
| A2.java:27:27:27:34 | o : Number | semmle.label | o : Number |
7474
| A2.java:29:9:29:9 | o | semmle.label | o |
75-
| A.java:6:28:6:35 | o : Object | semmle.label | o : Object |
76-
| A.java:6:28:6:35 | o : Object | semmle.label | o : Object |
77-
| A.java:8:11:8:11 | o : Object | semmle.label | o : Object |
78-
| A.java:8:11:8:11 | o : Object | semmle.label | o : Object |
75+
| A.java:6:28:6:35 | o : Number | semmle.label | o : Number |
76+
| A.java:6:28:6:35 | o : Number | semmle.label | o : Number |
77+
| A.java:8:11:8:11 | o : Number | semmle.label | o : Number |
78+
| A.java:8:11:8:11 | o : Number | semmle.label | o : Number |
7979
| A.java:14:29:14:36 | o : Number | semmle.label | o : Number |
8080
| A.java:16:9:16:9 | o | semmle.label | o |
8181
| A.java:20:30:20:37 | o : Number | semmle.label | o : Number |
@@ -114,8 +114,8 @@ nodes
114114
| A.java:120:36:120:43 | o : Number | semmle.label | o : Number |
115115
| A.java:128:9:128:10 | o3 | semmle.label | o3 |
116116
subpaths
117-
| A.java:69:20:69:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Object | A.java:8:11:8:11 | o : Object | A.java:69:8:69:40 | flowThrough(...) |
118-
| A.java:88:20:88:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Object | A.java:8:11:8:11 | o : Object | A.java:88:8:88:37 | flowThrough(...) |
117+
| A.java:69:20:69:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Number | A.java:8:11:8:11 | o : Number | A.java:69:8:69:40 | flowThrough(...) |
118+
| A.java:88:20:88:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Number | A.java:8:11:8:11 | o : Number | A.java:88:8:88:37 | flowThrough(...) |
119119
#select
120120
| A2.java:15:15:15:28 | new Integer(...) : Number | A2.java:15:15:15:28 | new Integer(...) : Number | A2.java:29:9:29:9 | o | $@ | A2.java:29:9:29:9 | o | o |
121121
| A.java:62:18:62:31 | new Integer(...) : Number | A.java:62:18:62:31 | new Integer(...) : Number | A.java:16:9:16:9 | o | $@ | A.java:16:9:16:9 | o | o |

shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3228,11 +3228,12 @@ module MakeImpl<InputSig Lang> {
32283228
// private predicate mostBusyNodeFwd4 = Stage4::mostBusyNodeFwd/10;
32293229
private predicate mostBusyNodeFwd5 = Stage5::mostBusyNodeFwd/10;
32303230

3231-
bindingset[node, t0, inSummaryCtx]
3231+
bindingset[node, origT, t0, inSummaryCtx]
32323232
private predicate strengthenType(
32333233
NodeEx node, DataFlowType origT, DataFlowType t0, DataFlowType t, boolean inSummaryCtx
32343234
) {
32353235
exists(inSummaryCtx) and
3236+
exists(origT) and
32363237
// if node instanceof RetNodeEx and inSummaryCtx = true
32373238
// then t = node.getDataFlowType() and compatibleTypes(t, t0)
32383239
// else
@@ -3254,12 +3255,7 @@ module MakeImpl<InputSig Lang> {
32543255
then t = nt
32553256
else (
32563257
compatibleTypes(nt, t0) and
3257-
// t = t0
3258-
if inSummaryCtx = true and node instanceof ParamNodeEx
3259-
then
3260-
t = nt and
3261-
compatibleTypes(origT, t)
3262-
else t = t0
3258+
t = t0
32633259
)
32643260
)
32653261
else t = t0
@@ -3545,6 +3541,7 @@ module MakeImpl<InputSig Lang> {
35453541
abstract AccessPathFront getFront();
35463542

35473543
/** Holds if this is a representation of `head` followed by the `typ,tail` pair. */
3544+
bindingset[head, typ, tail]
35483545
abstract predicate isCons(Content head, DataFlowType typ, AccessPathApprox tail);
35493546
}
35503547

@@ -3557,6 +3554,7 @@ module MakeImpl<InputSig Lang> {
35573554

35583555
override AccessPathFront getFront() { result = TFrontNil() }
35593556

3557+
bindingset[head, typ, tail]
35603558
override predicate isCons(Content head, DataFlowType typ, AccessPathApprox tail) { none() }
35613559
}
35623560

@@ -3579,6 +3577,7 @@ module MakeImpl<InputSig Lang> {
35793577

35803578
override AccessPathFront getFront() { result = TFrontHead(c) }
35813579

3580+
bindingset[head, typ, tail]
35823581
override predicate isCons(Content head, DataFlowType typ, AccessPathApprox tail) {
35833582
head = c and typ = t and tail = TNil()
35843583
}
@@ -3604,6 +3603,7 @@ module MakeImpl<InputSig Lang> {
36043603

36053604
override AccessPathFront getFront() { result = TFrontHead(c1) }
36063605

3606+
bindingset[head, typ, tail]
36073607
override predicate isCons(Content head, DataFlowType typ, AccessPathApprox tail) {
36083608
head = c1 and
36093609
typ = t and
@@ -3636,6 +3636,7 @@ module MakeImpl<InputSig Lang> {
36363636

36373637
override AccessPathFront getFront() { result = TFrontHead(c) }
36383638

3639+
bindingset[head, typ, tail]
36393640
override predicate isCons(Content head, DataFlowType typ, AccessPathApprox tail) {
36403641
head = c and
36413642
(
@@ -3691,13 +3692,15 @@ module MakeImpl<InputSig Lang> {
36913692

36923693
ApHeadContent projectToHeadContent(Content c) { result = c }
36933694

3694-
class ApOption = AccessPathFrontOption;
3695+
// class ApOption = AccessPathFrontOption;
3696+
class ApOption = AccessPathApproxOption;
36953697

3696-
// class ApOption = AccessPathApproxOption;
3697-
ApOption apNone() { result = TAccessPathFrontNone() }
3698+
ApOption apNone() { result = TAccessPathApproxNone() }
36983699

3699-
ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap.getFront()) }
3700+
ApOption apSome(Ap ap) { result = TAccessPathApproxSome(ap) }
37003701

3702+
// ApOption apNone() { result = TAccessPathFrontNone() }
3703+
// ApOption apSome(Ap ap) { result = TAccessPathFrontSome(ap.getFront()) }
37013704
import Level1CallContext
37023705
import LocalCallContext
37033706

@@ -3747,7 +3750,7 @@ module MakeImpl<InputSig Lang> {
37473750
Stage5::parameterMayFlowThrough(p, _) and
37483751
Stage5::revFlow(n, state, TReturnCtxMaybeFlowThrough(_), _, apa0) and
37493752
Stage5::fwdFlow(n, state, any(CallContextCall ccc), TParamNodeSome(p.asNode()), _,
3750-
TAccessPathFrontSome(apa.getFront()), _, _, apa0, _)
3753+
TAccessPathApproxSome(apa), _, _, apa0, _)
37513754
)
37523755
}
37533756

0 commit comments

Comments
 (0)