Fixed segfault in VoD outputs with corrupted headers

This commit is contained in:
Thulinma 2016-09-06 11:53:55 +02:00
parent a4f35ca11e
commit bd4c951488

View file

@ -404,8 +404,12 @@ namespace Mist {
} }
void Output::loadPageForKey(long unsigned int trackId, long long int keyNum){ 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()){ 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); nProxy.curPage.erase(trackId);
currKeyOpen.erase(trackId); currKeyOpen.erase(trackId);
return; return;