зеркало из https://github.com/github/codeql.git
C++: Test case.
This commit is contained in:
Родитель
155985c77d
Коммит
d454c8457d
|
@ -1,3 +1,7 @@
|
|||
| test2.cpp:19:3:19:6 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test2.cpp:18:10:18:14 | new | new |
|
||||
| test2.cpp:26:3:26:6 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test2.cpp:25:7:25:11 | new | new |
|
||||
| test2.cpp:26:3:26:6 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test2.cpp:25:7:25:11 | new | new |
|
||||
| test2.cpp:30:3:30:6 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test2.cpp:29:7:29:18 | new | new |
|
||||
| test.cpp:36:2:36:17 | delete | There is a malloc/delete mismatch between this delete and the corresponding $@. | test.cpp:27:18:27:23 | call to malloc | malloc |
|
||||
| test.cpp:41:2:41:5 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test.cpp:26:7:26:17 | new | new |
|
||||
| test.cpp:68:3:68:11 | delete | There is a malloc/delete mismatch between this delete and the corresponding $@. | test.cpp:64:28:64:33 | call to malloc | malloc |
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
// semmle-extractor-options: -std=gnu++14
|
||||
|
||||
typedef unsigned long size_t;
|
||||
|
||||
void *malloc(size_t size);
|
||||
void free(void *ptr);
|
||||
|
||||
void* operator new(size_t _Size, void *_Where);
|
||||
|
||||
// ---
|
||||
|
||||
template<typename T>
|
||||
class MyTest2Class
|
||||
{
|
||||
public:
|
||||
MyTest2Class()
|
||||
{
|
||||
int *a = new int;
|
||||
free(a); // BAD
|
||||
|
||||
int *ptr_b = (int *)malloc(sizeof(int));
|
||||
int *b = new(ptr_b) int;
|
||||
free(b); // GOOD
|
||||
|
||||
c = new int;
|
||||
free(c); // BAD
|
||||
|
||||
int *ptr_d = (int *)malloc(sizeof(int));
|
||||
d = new(ptr_d) int;
|
||||
free(d); // GOOD [FALSE POSITIVE]
|
||||
}
|
||||
|
||||
int *c, *d;
|
||||
};
|
||||
|
||||
MyTest2Class<int> mt2c_i;
|
Загрузка…
Ссылка в новой задаче