Skip to content

Commit 6315621

Browse files
committed
use instanceof extensions for some filesystem concepts
1 parent d1f2258 commit 6315621

File tree

1 file changed

+6
-16
lines changed

1 file changed

+6
-16
lines changed

ql/lib/codeql/ruby/Concepts.qll

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,9 @@ module SqlExecution {
4343
* Extend this class to refine existing API models. If you want to model new APIs,
4444
* extend `FileSystemAccess::Range` instead.
4545
*/
46-
class FileSystemAccess extends DataFlow::Node {
47-
FileSystemAccess::Range range;
48-
49-
FileSystemAccess() { this = range }
50-
46+
class FileSystemAccess extends DataFlow::Node instanceof FileSystemAccess::Range {
5147
/** Gets an argument to this file system access that is interpreted as a path. */
52-
DataFlow::Node getAPathArgument() { result = range.getAPathArgument() }
48+
DataFlow::Node getAPathArgument() { result = super.getAPathArgument() }
5349
}
5450

5551
/** Provides a class for modeling new file system access APIs. */
@@ -73,13 +69,11 @@ module FileSystemAccess {
7369
* Extend this class to refine existing API models. If you want to model new APIs,
7470
* extend `FileSystemReadAccess::Range` instead.
7571
*/
76-
class FileSystemReadAccess extends FileSystemAccess {
77-
override FileSystemReadAccess::Range range;
78-
72+
class FileSystemReadAccess extends FileSystemAccess instanceof FileSystemReadAccess::Range {
7973
/**
8074
* Gets a node that represents data read from the file system access.
8175
*/
82-
DataFlow::Node getADataNode() { result = range.getADataNode() }
76+
DataFlow::Node getADataNode() { result = FileSystemReadAccess::Range.super.getADataNode() }
8377
}
8478

8579
/** Provides a class for modeling new file system reads. */
@@ -104,16 +98,12 @@ module FileSystemReadAccess {
10498
* Extend this class to refine existing API models. If you want to model new APIs,
10599
* extend `FileSystemPermissionModification::Range` instead.
106100
*/
107-
class FileSystemPermissionModification extends DataFlow::Node {
108-
FileSystemPermissionModification::Range range;
109-
110-
FileSystemPermissionModification() { this = range }
111-
101+
class FileSystemPermissionModification extends DataFlow::Node instanceof FileSystemPermissionModification::Range {
112102
/**
113103
* Gets an argument to this permission modification that is interpreted as a
114104
* set of permissions.
115105
*/
116-
DataFlow::Node getAPermissionNode() { result = range.getAPermissionNode() }
106+
DataFlow::Node getAPermissionNode() { result = super.getAPermissionNode() }
117107
}
118108

119109
/** Provides a class for modeling new file system permission modifications. */

0 commit comments

Comments
 (0)