From 5d2d6cc617fd50fb0bc9d733528550d9b684cffa Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 24 Aug 2014 17:20:09 -0700 Subject: [PATCH] Fix heap corruption after packet queue overflow --- limelight-common/AudioStream.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/limelight-common/AudioStream.c b/limelight-common/AudioStream.c index 4f1bd85..9d87976 100644 --- a/limelight-common/AudioStream.c +++ b/limelight-common/AudioStream.c @@ -105,10 +105,7 @@ static void ReceiveThreadProc(void* context) { memcpy(buffer, &err, sizeof(err)); err = LbqOfferQueueItem(&packetQueue, buffer); - if (err != LBQ_SUCCESS) { - free(buffer); - } - else { + if (err == LBQ_SUCCESS) { // The queue owns the buffer now buffer = NULL; } @@ -118,6 +115,7 @@ static void ReceiveThreadProc(void* context) { } else if (err == LBQ_INTERRUPTED) { Limelog("Receive thread terminating #2\n"); + free(buffer); return; } }