Skip to content

Commit 231c91f

Browse files
committed
csparser: add double_unlock as key event for LOCK
1 parent ec7ce85 commit 231c91f

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

csparser.cc

+1-3
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ KeyEventDigger::KeyEventDigger():
239239
d->hMap["FORWARD_NULL"] .insert("dereference");
240240
d->hMap["FORWARD_NULL"] .insert("var_deref_op");
241241
d->hMap["FORWARD_NULL"] .insert("var_deref_model");
242+
d->hMap["LOCK"] .insert("double_unlock");
242243
d->hMap["NESTING_INDENT_MISMATCH"].insert("dangling_else");
243244
d->hMap["NESTING_INDENT_MISMATCH"].insert("multi_stmt_macro");
244245
d->hMap["NESTING_INDENT_MISMATCH"].insert("on_same_line");
@@ -266,9 +267,6 @@ KeyEventDigger::KeyEventDigger():
266267
d->hMap["CLANG_WARNING"] .insert("warning");
267268
d->hMap["CLANG_WARNING"] .insert("fatal error");
268269

269-
// do not match the lowered checker name of the following checkers
270-
d->hMap["LOCK"];
271-
272270
// events that should never be used as key events (excluding trace events)
273271
d->blackList.insert("another_instance");
274272
d->blackList.insert("comparison_remediation");

tests/csgrep/44-csparser-new-key-evts-stdin.txt

+9
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,12 @@ Error: BAD_FREE (CWE-763):
127127
bind-9.11.3/lib/isc-pkcs11/mem.c:1592: address_assign: Assigning: "si" = "&(size_info *)ptr[-2]".
128128
bind-9.11.3/lib/isc-pkcs11/mem.c:1608: incorrect_free: "mem_put" frees incorrect pointer "si".
129129
bind-9.11.3/lib/isc-pkcs11/mem.c:804:1: function_annotation: Applying function annotation "free" to all paths.
130+
131+
Error: LOCK (CWE-667):
132+
389-ds-base-1.3.8.4/ldap/servers/plugins/replication/repl5_ruv.c:1409: unlock: "ruv_replica_count" unlocks "ruv->lock".
133+
389-ds-base-1.3.8.4/ldap/servers/plugins/replication/repl5_ruv.c:1377:9: lock: "slapi_rwlock_rdlock" locks "ruv->lock".
134+
389-ds-base-1.3.8.4/ldap/servers/slapd/slapi2nspr.c:221:9: lock: "pthread_rwlock_rdlock" locks "rwlock".
135+
389-ds-base-1.3.8.4/ldap/servers/plugins/replication/repl5_ruv.c:1379:9: unlock: "slapi_rwlock_unlock" unlocks "ruv->lock".
136+
389-ds-base-1.3.8.4/ldap/servers/slapd/slapi2nspr.c:253:9: unlock: "pthread_rwlock_unlock" unlocks "rwlock".
137+
389-ds-base-1.3.8.4/ldap/servers/plugins/replication/repl5_ruv.c:1428: double_unlock: "slapi_rwlock_unlock" unlocks "ruv->lock" while it is unlocked.
138+
389-ds-base-1.3.8.4/ldap/servers/slapd/slapi2nspr.c:253:9: unlock: "pthread_rwlock_unlock" unlocks "rwlock".

tests/csgrep/44-csparser-new-key-evts-stdout.txt

+3
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,6 @@ apache-tomcat-9.0.7.redhat-10-src/java/org/apache/tomcat/websocket/WsFrameBase.j
5757

5858
Error: BAD_FREE (CWE-763):
5959
bind-9.11.3/lib/isc-pkcs11/mem.c:1608: incorrect_free: "mem_put" frees incorrect pointer "si".
60+
61+
Error: LOCK (CWE-667):
62+
389-ds-base-1.3.8.4/ldap/servers/plugins/replication/repl5_ruv.c:1428: double_unlock: "slapi_rwlock_unlock" unlocks "ruv->lock" while it is unlocked.

0 commit comments

Comments
 (0)