C++: Add a MaD model for 'CAtlTemporaryFile' and mark reads as local flow sources.

This commit is contained in:
Mathias Vorreiter Pedersen
2024-11-27 15:38:34 +00:00
parent 67ba85a0a3
commit 33212da876
4 changed files with 27 additions and 1 deletions

View File

@@ -55,3 +55,4 @@ private import implementations.CComBSTR
private import implementations.CPathT
private import implementations.CAtlFile
private import implementations.CAtlFileMapping
private import implementations.CAtlTemporaryFile

View File

@@ -0,0 +1,17 @@
import semmle.code.cpp.models.interfaces.FlowSource
/**
* The `CAtlFile` class from Microsoft's Active Template Library.
*/
class CAtlTemporaryFile extends Class {
CAtlTemporaryFile() { this.hasGlobalName("CAtlTemporaryFile") }
}
private class CAtlTemporaryFileRead extends MemberFunction, LocalFlowSourceFunction {
CAtlTemporaryFileRead() { this.getClassAndName("Read") instanceof CAtlTemporaryFile }
override predicate hasLocalFlowSource(FunctionOutput output, string description) {
output.isParameterDeref(0) and
description = "string read by " + this.getName()
}
}