Hi

In logsys there are a number of XYZ_unlocked() functions that are called
like this:

        pthread_mutex_lock (&logsys_config_mutex);

        XYZ_unlocked();

        pthread_mutex_unlock (&logsys_config_mutex);

The assumption (I assume) is that XYZ_unlocked() should not do any (un)locking.
But _logsys_config_subsys_get_unlocked() unlocks if it finds the subsys.
This means that there is 1 lock and 2 unlocks.

This causes a core dump in uClibc. So I have simply removed the unlock.

Regards
Angus

diff --git a/exec/logsys.c b/exec/logsys.c
index af72bcf..12c9e5e 100644
--- a/exec/logsys.c
+++ b/exec/logsys.c
@@ -803,7 +803,6 @@ static int _logsys_config_subsys_get_unlocked
(const char *subsys)

        for (i = 0; i <= LOGSYS_MAX_SUBSYS_COUNT; i++) {
                if (strcmp (logsys_loggers[i].subsys, subsys) == 0) {
-                   pthread_mutex_unlock (&logsys_config_mutex);
                        return i;
                }
        }
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to