Skip to content

Commit 3dc3f87

Browse files
committed
csparser: add double_lock as key event for LOCK
1 parent 231c91f commit 3dc3f87

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

csparser.cc

+1
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_lock");
242243
d->hMap["LOCK"] .insert("double_unlock");
243244
d->hMap["NESTING_INDENT_MISMATCH"].insert("dangling_else");
244245
d->hMap["NESTING_INDENT_MISMATCH"].insert("multi_stmt_macro");

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

+36
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,39 @@ Error: LOCK (CWE-667):
136136
389-ds-base-1.3.8.4/ldap/servers/slapd/slapi2nspr.c:253:9: unlock: "pthread_rwlock_unlock" unlocks "rwlock".
137137
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.
138138
389-ds-base-1.3.8.4/ldap/servers/slapd/slapi2nspr.c:253:9: unlock: "pthread_rwlock_unlock" unlocks "rwlock".
139+
140+
Error: LOCK (CWE-667):
141+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:1209: lock: "pthread_mutex_lock" locks "job->monitor".
142+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:1221: double_lock: "internal_ns_job_rearm" locks "job->monitor" while it is locked.
143+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:253:5: lock: "pthread_mutex_lock" locks "job->monitor".
144+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:264:9: lock: "event_q_notify" locks "job->monitor".
145+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:522:9: lock: "update_event" locks "job->monitor".
146+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:425:5: lock: "pthread_mutex_lock" locks "job->monitor".
147+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:431:9: unlock: "pthread_mutex_unlock" unlocks "job->monitor".
148+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:432:9: lock: "internal_ns_job_done" locks "job->monitor".
149+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:217:5: lock: "pthread_mutex_lock" locks "job->monitor".
150+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:242:5: unlock: "pthread_mutex_unlock" unlocks "job->monitor".
151+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:243:5: destroy: "pthread_mutex_destroy" destroys "job->monitor".
152+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:432:9: destroy: "internal_ns_job_done" destroys "job->monitor".
153+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:217:5: lock: "pthread_mutex_lock" locks "job->monitor".
154+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:242:5: unlock: "pthread_mutex_unlock" unlocks "job->monitor".
155+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:243:5: destroy: "pthread_mutex_destroy" destroys "job->monitor".
156+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:522:9: unlock: "update_event" unlocks "job->monitor".
157+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:425:5: lock: "pthread_mutex_lock" locks "job->monitor".
158+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:440:9: unlock: "pthread_mutex_unlock" unlocks "job->monitor".
159+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:264:9: unlock: "event_q_notify" unlocks "job->monitor".
160+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:522:9: lock: "update_event" locks "job->monitor".
161+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:425:5: lock: "pthread_mutex_lock" locks "job->monitor".
162+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:431:9: unlock: "pthread_mutex_unlock" unlocks "job->monitor".
163+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:432:9: lock: "internal_ns_job_done" locks "job->monitor".
164+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:217:5: lock: "pthread_mutex_lock" locks "job->monitor".
165+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:242:5: unlock: "pthread_mutex_unlock" unlocks "job->monitor".
166+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:243:5: destroy: "pthread_mutex_destroy" destroys "job->monitor".
167+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:432:9: destroy: "internal_ns_job_done" destroys "job->monitor".
168+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:217:5: lock: "pthread_mutex_lock" locks "job->monitor".
169+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:242:5: unlock: "pthread_mutex_unlock" unlocks "job->monitor".
170+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:243:5: destroy: "pthread_mutex_destroy" destroys "job->monitor".
171+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:522:9: unlock: "update_event" unlocks "job->monitor".
172+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:425:5: lock: "pthread_mutex_lock" locks "job->monitor".
173+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:440:9: unlock: "pthread_mutex_unlock" unlocks "job->monitor".
174+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:270:5: unlock: "pthread_mutex_unlock" unlocks "job->monitor".

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

+3
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,6 @@ bind-9.11.3/lib/isc-pkcs11/mem.c:1608: incorrect_free: "mem_put" frees incorrect
6060

6161
Error: LOCK (CWE-667):
6262
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.
63+
64+
Error: LOCK (CWE-667):
65+
389-ds-base-1.3.8.4/src/nunc-stans/ns/ns_thrpool.c:1221: double_lock: "internal_ns_job_rearm" locks "job->monitor" while it is locked.

0 commit comments

Comments
 (0)