From 013a93bc32549cb888ecb6427e8db0e3f984e7e2 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 27 Apr 2016 02:16:18 -0400 Subject: [PATCH] Fix uninitialized memory usage in the RTP reorder queue causing assertion failures --- src/LinkedBlockingQueue.c | 6 ++---- src/RtpReorderQueue.c | 4 +--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/LinkedBlockingQueue.c b/src/LinkedBlockingQueue.c index 5b3eabf..35fb5fe 100644 --- a/src/LinkedBlockingQueue.c +++ b/src/LinkedBlockingQueue.c @@ -34,6 +34,8 @@ PLINKED_BLOCKING_QUEUE_ENTRY LbqFlushQueueItems(PLINKED_BLOCKING_QUEUE queueHead int LbqInitializeLinkedBlockingQueue(PLINKED_BLOCKING_QUEUE queueHead, int sizeBound) { int err; + memset(queueHead, 0, sizeof(*queueHead)); + err = PltCreateEvent(&queueHead->containsDataEvent); if (err != 0) { return err; @@ -44,11 +46,7 @@ int LbqInitializeLinkedBlockingQueue(PLINKED_BLOCKING_QUEUE queueHead, int sizeB return err; } - queueHead->head = NULL; - queueHead->tail = NULL; queueHead->sizeBound = sizeBound; - queueHead->currentSize = 0; - queueHead->shutdown = 0; return 0; } diff --git a/src/RtpReorderQueue.c b/src/RtpReorderQueue.c index 9718b47..8171a37 100644 --- a/src/RtpReorderQueue.c +++ b/src/RtpReorderQueue.c @@ -2,13 +2,11 @@ #include "RtpReorderQueue.h" void RtpqInitializeQueue(PRTP_REORDER_QUEUE queue, int maxSize, int maxQueueTimeMs) { + memset(queue, 0, sizeof(*queue)); queue->maxSize = maxSize; queue->maxQueueTimeMs = maxQueueTimeMs; - queue->queueHead = NULL; - queue->queueTail = NULL; queue->nextRtpSequenceNumber = UINT16_MAX; queue->oldestQueuedTimeMs = UINT64_MAX; - queue->oldestQueuedEntry = NULL; } void RtpqCleanupQueue(PRTP_REORDER_QUEUE queue) {