Skip to content

Commit 8a7f9e3

Browse files
committed
checkpoint
1 parent 9288fd8 commit 8a7f9e3

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
No expected results have yet been specified
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rules/CON30-C/CleanUpThreadSpecificStorage.ql

c/cert/test/rules/CON30-C/main.c

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
#include <threads.h>
4+
5+
static tss_t k;
6+
7+
void do_free(void *d) { free(d); }
8+
9+
void maybe_free(void *d) {}
10+
11+
void m1() {
12+
tss_create(&k, free); // COMPLIANT
13+
tss_delete(k);
14+
}
15+
16+
void m2() {
17+
tss_create(&k, do_free); // COMPLIANT
18+
tss_delete(k);
19+
}
20+
21+
void m3() {
22+
tss_create(&k, maybe_free); // COMPLIANT
23+
tss_delete(k);
24+
}
25+
26+
void m1a() {
27+
tss_create(&k, free); // COMPLIANT
28+
free(tss_get(k));
29+
}
30+
31+
void m2a() {
32+
tss_create(&k, do_free); // COMPLIANT
33+
free(tss_get(k));
34+
}
35+
36+
void m3a() {
37+
tss_create(&k, maybe_free); // COMPLIANT
38+
free(tss_get(k));
39+
}
40+
41+
void m1b() {
42+
tss_create(&k, NULL); // COMPLIANT
43+
free(tss_get(k));
44+
}
45+
46+
void m2b() {
47+
tss_create(&k, NULL); // COMPLIANT
48+
free(tss_get(k));
49+
}
50+
51+
void m3b() {
52+
tss_create(&k, NULL); // COMPLIANT
53+
free(tss_get(k));
54+
}
55+
56+
void m4() {
57+
tss_create(&k, free); // NON_COMPLIANT
58+
}
59+
60+
void m5() {
61+
tss_create(&k, do_free); // NON_COMPLIANT
62+
}
63+
64+
void m6() {
65+
tss_create(&k, maybe_free); // NON_COMPLIANT
66+
}
67+
68+
void m4a() {
69+
tss_create(&k, NULL); // NON_COMPLIANT
70+
}
71+
72+
void m5a() {
73+
tss_create(&k, NULL); // NON_COMPLIANT
74+
}
75+
76+
void m6a() {
77+
tss_create(&k, NULL); // NON_COMPLIANT
78+
}
79+
80+
void m4b() {
81+
tss_create(&k, NULL); // NON_COMPLIANT
82+
tss_delete(k);
83+
}
84+
85+
void m5b() {
86+
tss_create(&k, NULL); // NON_COMPLIANT
87+
tss_delete(k);
88+
}
89+
90+
void m6b() {
91+
tss_create(&k, NULL); // NON_COMPLIANT
92+
tss_delete(k);
93+
}

0 commit comments

Comments
 (0)