Skip to content

Commit 4f0174e

Browse files
committed
Ruby: add FileSystemWriteAccess concept
1 parent a448db1 commit 4f0174e

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

ruby/ql/lib/codeql/ruby/Concepts.qll

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,35 @@ module FileSystemReadAccess {
9292
}
9393
}
9494

95+
/**
96+
* A data flow node that writes data to the file system.
97+
*
98+
* Extend this class to refine existing API models. If you want to model new APIs,
99+
* extend `FileSystemWriteAccess::Range` instead.
100+
*/
101+
class FileSystemWriteAccess extends FileSystemAccess instanceof FileSystemWriteAccess::Range {
102+
/**
103+
* Gets a node that represents data written to the file system by this access.
104+
*/
105+
DataFlow::Node getADataNode() { result = FileSystemWriteAccess::Range.super.getADataNode() }
106+
}
107+
108+
/** Provides a class for modeling new file system writes. */
109+
module FileSystemWriteAccess {
110+
/**
111+
* A data flow node that writes data to the file system.
112+
*
113+
* Extend this class to model new APIs. If you want to refine existing API models,
114+
* extend `FileSystemWriteAccess` instead.
115+
*/
116+
abstract class Range extends FileSystemAccess::Range {
117+
/**
118+
* Gets a node that represents data written to the file system by this access.
119+
*/
120+
abstract DataFlow::Node getADataNode();
121+
}
122+
}
123+
95124
/**
96125
* A data flow node that sets the permissions for one or more files.
97126
*

0 commit comments

Comments
 (0)