Fix mutex being incorrectly passed by value. Fixes bug #1373785.

pull/211/merge
Roger A. Light 11 years ago
parent 4a19d9ae3a
commit 1e87697359

@ -5,6 +5,9 @@ Broker:
- Fix possible memory leak when using a topic that has a leading slash. Fixes - Fix possible memory leak when using a topic that has a leading slash. Fixes
bug #1360985. bug #1360985.
Client library:
- Fix mutex being incorrectly passed by value. Fixes bug #1373785.
1.3.4 - 20140806 1.3.4 - 20140806
================ ================

@ -297,7 +297,7 @@ int _mosquitto_message_remove(struct mosquitto *mosq, uint16_t mid, enum mosquit
} }
#ifdef WITH_THREADING #ifdef WITH_THREADING
void _mosquitto_message_retry_check_actual(struct mosquitto *mosq, struct mosquitto_message_all *messages, pthread_mutex_t mutex) void _mosquitto_message_retry_check_actual(struct mosquitto *mosq, struct mosquitto_message_all *messages, pthread_mutex_t *mutex)
#else #else
void _mosquitto_message_retry_check_actual(struct mosquitto *mosq, struct mosquitto_message_all *messages) void _mosquitto_message_retry_check_actual(struct mosquitto *mosq, struct mosquitto_message_all *messages)
#endif #endif
@ -306,7 +306,7 @@ void _mosquitto_message_retry_check_actual(struct mosquitto *mosq, struct mosqui
assert(mosq); assert(mosq);
#ifdef WITH_THREADING #ifdef WITH_THREADING
pthread_mutex_lock(&mutex); pthread_mutex_lock(mutex);
#endif #endif
while(messages){ while(messages){
@ -335,15 +335,15 @@ void _mosquitto_message_retry_check_actual(struct mosquitto *mosq, struct mosqui
messages = messages->next; messages = messages->next;
} }
#ifdef WITH_THREADING #ifdef WITH_THREADING
pthread_mutex_unlock(&mutex); pthread_mutex_unlock(mutex);
#endif #endif
} }
void _mosquitto_message_retry_check(struct mosquitto *mosq) void _mosquitto_message_retry_check(struct mosquitto *mosq)
{ {
#ifdef WITH_THREADING #ifdef WITH_THREADING
_mosquitto_message_retry_check_actual(mosq, mosq->out_messages, mosq->out_message_mutex); _mosquitto_message_retry_check_actual(mosq, mosq->out_messages, &mosq->out_message_mutex);
_mosquitto_message_retry_check_actual(mosq, mosq->in_messages, mosq->in_message_mutex); _mosquitto_message_retry_check_actual(mosq, mosq->in_messages, &mosq->in_message_mutex);
#else #else
_mosquitto_message_retry_check_actual(mosq, mosq->out_messages); _mosquitto_message_retry_check_actual(mosq, mosq->out_messages);
_mosquitto_message_retry_check_actual(mosq, mosq->in_messages); _mosquitto_message_retry_check_actual(mosq, mosq->in_messages);

Loading…
Cancel
Save