From bd4c95148897f00cb89ce1319c9d165f05de6929 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Tue, 6 Sep 2016 11:53:55 +0200 Subject: [PATCH] Fixed segfault in VoD outputs with corrupted headers --- src/output/output.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/output/output.cpp b/src/output/output.cpp index 517a3801..dc9ad494 100644 --- a/src/output/output.cpp +++ b/src/output/output.cpp @@ -404,8 +404,12 @@ namespace Mist { } void Output::loadPageForKey(long unsigned int trackId, long long int keyNum){ + if (!myMeta.tracks.count(trackId) || !myMeta.tracks[trackId].keys.size()){ + WARN_MSG("Load for track %lu key %lld aborted - track is empty", trackId, keyNum); + return; + } if (myMeta.vod && keyNum > myMeta.tracks[trackId].keys.rbegin()->getNumber()){ - INFO_MSG("Seek in track %lu to key %lld aborted, is > %lld", trackId, keyNum, myMeta.tracks[trackId].keys.rbegin()->getNumber()); + INFO_MSG("Load for track %lu key %lld aborted, is > %lld", trackId, keyNum, myMeta.tracks[trackId].keys.rbegin()->getNumber()); nProxy.curPage.erase(trackId); currKeyOpen.erase(trackId); return;