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