1
+ {
2
+ "CERT-C" : {
3
+ "CON30-C" : {
4
+ "properties" : {
5
+ "obligation" : " rule"
6
+ },
7
+ "queries" : [
8
+ {
9
+ "description" : " " ,
10
+ "kind" : " problem" ,
11
+ "name" : " Clean up thread-specific storage" ,
12
+ "precision" : " medium" ,
13
+ "severity" : " error" ,
14
+ "short_name" : " CleanUpThreadSpecificStorage" ,
15
+ "tags" : []
16
+ }
17
+ ],
18
+ "title" : " Clean up thread-specific storage"
19
+ },
20
+ "CON31-C" : {
21
+ "properties" : {
22
+ "obligation" : " rule"
23
+ },
24
+ "queries" : [
25
+ {
26
+ "description" : " Allowing a mutex to go out of scope while it is locked removes protections around shared resources." ,
27
+ "kind" : " problem" ,
28
+ "name" : " Do not destroy a mutex while it is locked" ,
29
+ "precision" : " high" ,
30
+ "severity" : " error" ,
31
+ "short_name" : " DoNotAllowAMutexToGoOutOfScopeWhileLocked" ,
32
+ "shared_implementation_short_name" : " DoNotAllowAMutexToGoOutOfScopeWhileLocked" ,
33
+ "tags" : [
34
+ " correctness" ,
35
+ " concurrency"
36
+ ]
37
+ },
38
+ {
39
+ "description" : " Calling delete on a locked mutex removes protections around shared resources." ,
40
+ "kind" : " problem" ,
41
+ "name" : " Do not destroy a mutex while it is locked" ,
42
+ "precision" : " high" ,
43
+ "severity" : " error" ,
44
+ "short_name" : " DoNotDestroyAMutexWhileItIsLocked" ,
45
+ "shared_implementation_short_name" : " DoNotDestroyAMutexWhileItIsLocked" ,
46
+ "tags" : [
47
+ " correctness" ,
48
+ " concurrency"
49
+ ]
50
+ }
51
+ ],
52
+ "title" : " Do not destroy a mutex while it is locked"
53
+ },
54
+ "CON34-C" : {
55
+ "properties" : {
56
+ "obligation" : " rule"
57
+ },
58
+ "queries" : [
59
+ {
60
+ "description" : " " ,
61
+ "kind" : " problem" ,
62
+ "name" : " Declare objects shared between threads with appropriate storage durations" ,
63
+ "precision" : " high" ,
64
+ "severity" : " error" ,
65
+ "short_name" : " DeclareThreadsWithAppropriateStorageDurations" ,
66
+ "tags" : []
67
+ }
68
+ ],
69
+ "title" : " Declare objects shared between threads with appropriate storage durations"
70
+ },
71
+ "CON38-C" : {
72
+ "properties" : {
73
+ "obligation" : " rule"
74
+ },
75
+ "queries" : [
76
+ {
77
+ "description" : " " ,
78
+ "kind" : " problem" ,
79
+ "name" : " Preserve thread safety and liveness when using condition variables" ,
80
+ "precision" : " very-high" ,
81
+ "severity" : " error" ,
82
+ "short_name" : " PreserveSafetyWhenUsingConditionVariables" ,
83
+ "tags" : []
84
+ }
85
+ ],
86
+ "title" : " Preserve thread safety and liveness when using condition variables"
87
+ },
88
+ "CON39-C" : {
89
+ "properties" : {
90
+ "obligation" : " rule"
91
+ },
92
+ "queries" : [
93
+ {
94
+ "description" : " " ,
95
+ "kind" : " problem" ,
96
+ "name" : " Do not join or detach a thread that was previously joined or detached" ,
97
+ "precision" : " high" ,
98
+ "severity" : " error" ,
99
+ "short_name" : " ThreadPreviouslyJoinedOrDetached" ,
100
+ "tags" : []
101
+ }
102
+ ],
103
+ "title" : " Do not join or detach a thread that was previously joined or detached"
104
+ },
105
+ "CON40-C" : {
106
+ "properties" : {
107
+ "obligation" : " rule"
108
+ },
109
+ "queries" : [
110
+ {
111
+ "description" : " " ,
112
+ "kind" : " problem" ,
113
+ "name" : " Do not refer to an atomic variable twice in an expression" ,
114
+ "precision" : " very-high" ,
115
+ "severity" : " error" ,
116
+ "short_name" : " DoNotReferToAnAtomicVariableTwiceInExpression" ,
117
+ "tags" : []
118
+ }
119
+ ],
120
+ "title" : " Do not refer to an atomic variable twice in an expression"
121
+ },
122
+ "CON41-C" : {
123
+ "properties" : {
124
+ "obligation" : " rule"
125
+ },
126
+ "queries" : [
127
+ {
128
+ "description" : " " ,
129
+ "kind" : " problem" ,
130
+ "name" : " Wrap functions that can fail spuriously in a loop" ,
131
+ "precision" : " very-high" ,
132
+ "severity" : " error" ,
133
+ "short_name" : " WrapFunctionsThatCanFailSpuriouslyInLoop" ,
134
+ "tags" : []
135
+ }
136
+ ],
137
+ "title" : " Wrap functions that can fail spuriously in a loop"
138
+ }
139
+ }
140
+ }
0 commit comments