Skip to content

Commit fbe584f

Browse files
committed
CPP: Support more MS alloc functions.
1 parent 4075f57 commit fbe584f

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

cpp/ql/src/semmle/code/cpp/commons/Alloc.qll

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,19 @@ predicate allocationFunction(Function f)
3939
name = "MmAllocateNodePagesForMdlEx" or
4040
name = "MmMapLockedPagesWithReservedMapping" or
4141
name = "MmMapLockedPages" or
42-
name = "MmMapLockedPagesSpecifyCache"
42+
name = "MmMapLockedPagesSpecifyCache" or
43+
name = "LocalAlloc" or
44+
name = "LocalReAlloc" or
45+
name = "GlobalAlloc" or
46+
name = "GlobalReAlloc" or
47+
name = "HeapAlloc" or
48+
name = "HeapReAlloc" or
49+
name = "VirtualAlloc" or
50+
name = "CoTaskMemAlloc" or
51+
name = "CoTaskMemRealloc" or
52+
name = "SysAllocString" or
53+
name = "SysAllocStringByteLen" or
54+
name = "SysAllocStringLen"
4355
)
4456
)
4557
}
@@ -81,7 +93,18 @@ predicate freeFunction(Function f, int argNum)
8193
(name = "MmFreeMappingAddress" and argNum = 0) or
8294
(name = "MmFreePagesFromMdl" and argNum = 0) or
8395
(name = "MmUnmapReservedMapping" and argNum = 0) or
84-
(name = "MmUnmapLockedPages" and argNum = 0)
96+
(name = "MmUnmapLockedPages" and argNum = 0) or
97+
(name = "LocalFree" and argNum = 0) or
98+
(name = "GlobalFree" and argNum = 0) or
99+
(name = "HeapFree" and argNum = 2) or
100+
(name = "VirtualFree" and argNum = 0) or
101+
(name = "CoTaskMemFree" and argNum = 0) or
102+
(name = "SysFreeString" and argNum = 0) or
103+
(name = "LocalReAlloc" and argNum = 0) or
104+
(name = "GlobalReAlloc" and argNum = 0) or
105+
(name = "HeapReAlloc" and argNum = 2) or
106+
(name = "CoTaskMemRealloc" and argNum = 0) or
107+
(name = "SysReAllocString" and argNum = 0)
85108
)
86109
)
87110
}

0 commit comments

Comments
 (0)