serialqueue: Fix possible memory leak in serialqueue_extract_old()
Make sure to free all messages even if the requested size is smaller than the number of messages. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
f547cab710
commit
4d6830a373
|
@ -1034,10 +1034,10 @@ serialqueue_extract_old(struct serialqueue *sq, int sentq
|
||||||
|
|
||||||
// Walk the debug list
|
// Walk the debug list
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
while (!list_empty(¤t) && pos < max) {
|
while (!list_empty(¤t)) {
|
||||||
struct queue_message *qm = list_first_entry(
|
struct queue_message *qm = list_first_entry(
|
||||||
¤t, struct queue_message, node);
|
¤t, struct queue_message, node);
|
||||||
if (qm->len) {
|
if (qm->len && pos < max) {
|
||||||
struct pull_queue_message *pqm = q++;
|
struct pull_queue_message *pqm = q++;
|
||||||
pos++;
|
pos++;
|
||||||
memcpy(pqm->msg, qm->msg, qm->len);
|
memcpy(pqm->msg, qm->msg, qm->len);
|
||||||
|
|
Loading…
Reference in New Issue