hdb_handle_refcount_get uses handle without lock and do unlock. This
shouldn't ever happend.

Regards,
  Honza

diff --git a/trunk/include/corosync/hdb.h b/trunk/include/corosync/hdb.h
index 84cdc79..681ebe4 100644
--- a/trunk/include/corosync/hdb.h
+++ b/trunk/include/corosync/hdb.h
@@ -348,6 +348,13 @@ static inline int hdb_handle_refcount_get (
 
 	int refcount = 0;
 
+	if (handle_database->first_run == 1) {
+		handle_database->first_run = 0;
+		hdb_create (handle_database);
+	}
+
+	hdb_database_lock (&handle_database->lock);
+
 	if (handle >= handle_database->handle_count) {
 		hdb_database_unlock (&handle_database->lock);
 		errno = EBADF;
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to