@@ -66,26 +66,26 @@ private class JxBrowserSafeLoadHandler extends RefType {
66
66
* Models flow from the source `new Browser()` to a sink `browser.setLoadHandler(loadHandler)` where `loadHandler`
67
67
* has been determined to be safe.
68
68
*/
69
- private class JxBrowserFlowConfiguration extends DataFlow:: Configuration {
70
- JxBrowserFlowConfiguration ( ) { this = "JxBrowserFlowConfiguration" }
71
-
72
- override predicate isSource ( DataFlow:: Node src ) {
69
+ private module JxBrowserFlowConfig implements DataFlow:: ConfigSig {
70
+ predicate isSource ( DataFlow:: Node src ) {
73
71
exists ( ClassInstanceExpr newJxBrowser | newJxBrowser .getConstructedType ( ) instanceof JxBrowser |
74
72
newJxBrowser = src .asExpr ( )
75
73
)
76
74
}
77
75
78
- override predicate isSink ( DataFlow:: Node sink ) {
76
+ predicate isSink ( DataFlow:: Node sink ) {
79
77
exists ( MethodAccess ma | ma .getMethod ( ) instanceof JxBrowserSetLoadHandler |
80
78
ma .getArgument ( 0 ) .getType ( ) instanceof JxBrowserSafeLoadHandler and
81
79
ma .getQualifier ( ) = sink .asExpr ( )
82
80
)
83
81
}
84
82
}
85
83
86
- from JxBrowserFlowConfiguration cfg , DataFlow:: Node src
84
+ private module JxBrowserFlow = DataFlow:: Global< JxBrowserFlowConfig > ;
85
+
86
+ from DataFlow:: Node src
87
87
where
88
- cfg . isSource ( src ) and
89
- not cfg . hasFlow ( src , _) and
88
+ JxBrowserFlowConfig :: isSource ( src ) and
89
+ not JxBrowserFlow :: flow ( src , _) and
90
90
not isSafeJxBrowserVersion ( )
91
91
select src , "This JxBrowser instance may not check HTTPS certificates."
0 commit comments