File tree Expand file tree Collapse file tree 3 files changed +87
-0
lines changed
cpp/ql/test/query-tests/Security/CWE/CWE-675/semmle/tests Expand file tree Collapse file tree 3 files changed +87
-0
lines changed Original file line number Diff line number Diff line change 1+ | test.cpp:20:3:20:8 | call to fclose | Second call to the $@ function is possible. | test.cpp:21:3:21:8 | call to fclose | fclose |
2+ | test.cpp:31:3:31:8 | call to fclose | Second call to the $@ function is possible. | test.cpp:32:3:32:8 | call to fclose | fclose |
3+ | test.cpp:38:3:38:8 | call to fclose | Second call to the $@ function is possible. | test.cpp:44:3:44:8 | call to fclose | fclose |
Original file line number Diff line number Diff line change 1+ experimental/Security/CWE/CWE-675/DoubleRelease.ql
Original file line number Diff line number Diff line change 1+ #define NULL (0 )
2+ typedef int FILE;
3+ FILE *fopen (const char *filename, const char *mode);
4+ int fclose (FILE *stream);
5+ extern FILE * fe;
6+ void test1 ()
7+ {
8+ FILE *f;
9+
10+ f = fopen (" myFile.txt" , " wt" );
11+ fclose (f); // GOOD
12+ f = NULL ;
13+ }
14+
15+ void test2 ()
16+ {
17+ FILE *f;
18+
19+ f = fopen (" myFile.txt" , " wt" );
20+ fclose (f); // BAD
21+ fclose (f);
22+ }
23+
24+ void test3 ()
25+ {
26+ FILE *f;
27+ FILE *g;
28+
29+ f = fopen (" myFile.txt" , " wt" );
30+ g = f;
31+ fclose (f); // BAD
32+ fclose (g);
33+ }
34+
35+ int fGtest4_1 ()
36+ {
37+ fe = fopen (" myFile.txt" , " wt" );
38+ fclose (fe); // BAD
39+ return -1 ;
40+ }
41+
42+ int fGtest4_2 ()
43+ {
44+ fclose (fe);
45+ return -1 ;
46+ }
47+
48+ void Gtest4 ()
49+ {
50+ fGtest4_1 ();
51+ fGtest4_2 ();
52+ }
53+
54+ int fGtest5_1 ()
55+ {
56+ fe = fopen (" myFile.txt" , " wt" );
57+ fclose (fe); // GOOD
58+ fe = NULL ;
59+ return -1 ;
60+ }
61+
62+ int fGtest5_2 ()
63+ {
64+ fclose (fe);
65+ return -1 ;
66+ }
67+
68+ void Gtest5 ()
69+ {
70+ fGtest5_1 ();
71+ fGtest5_2 ();
72+ }
73+
74+ int main (int argc, char *argv[])
75+ {
76+ test1 ();
77+ test2 ();
78+ test3 ();
79+
80+ Gtest4 ();
81+ Gtest5 ();
82+ return 0 ;
83+ }
You can’t perform that action at this time.
0 commit comments