summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Janc <szymon.janc@tieto.com>2015-01-07 17:26:03 +0100
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-01-07 20:29:39 -0200
commit015f2c98e26447cfe77553f08cc7d99d36bec2a5 (patch)
treec2260d797ee353fbe8236643394443d5ac843a1e
parentb68c03b95d0ec192226eecd352e0057ff365e504 (diff)
downloadbluez-015f2c98e26447cfe77553f08cc7d99d36bec2a5.tar.gz
shared/queue: Fix NULL data handling in queue_remove_all
queue_remove_if returns data so we must check entries count to detect if entry was removed (with NULL data) or not found.
-rw-r--r--src/shared/queue.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/shared/queue.c b/src/shared/queue.c
index d94b34d5a..3507ed16c 100644
--- a/src/shared/queue.c
+++ b/src/shared/queue.c
@@ -362,9 +362,10 @@ unsigned int queue_remove_all(struct queue *queue, queue_match_func_t function,
if (function) {
while (entry) {
void *data;
+ unsigned int entries = queue->entries;
data = queue_remove_if(queue, function, user_data);
- if (!data)
+ if (entries == queue->entries)
break;
if (destroy)