mirror of https://github.com/procxx/kepka.git
Fix possible crash in CDN file loading.
This commit is contained in:
parent
3643622e1b
commit
d24735b217
|
@ -487,6 +487,13 @@ void DownloadMtprotoTask::removeSession(int sessionIndex) {
|
||||||
redirect.push_back({ requestId, requestData.offset });
|
redirect.push_back({ requestId, requestData.offset });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (auto &[requestData, bytes] : _cdnUncheckedParts) {
|
||||||
|
if (requestData.sessionIndex == sessionIndex) {
|
||||||
|
const auto newIndex = _owner->chooseSessionIndex(dcId());
|
||||||
|
Assert(newIndex < sessionIndex);
|
||||||
|
requestData.sessionIndex = newIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
for (const auto &[requestId, offset] : redirect) {
|
for (const auto &[requestId, offset] : redirect) {
|
||||||
cancelRequest(requestId);
|
cancelRequest(requestId);
|
||||||
const auto newIndex = _owner->chooseSessionIndex(dcId());
|
const auto newIndex = _owner->chooseSessionIndex(dcId());
|
||||||
|
|
|
@ -163,7 +163,7 @@ protected:
|
||||||
private:
|
private:
|
||||||
struct RequestData {
|
struct RequestData {
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
int sessionIndex = 0;
|
mutable int sessionIndex = 0;
|
||||||
int requestedInSession = 0;
|
int requestedInSession = 0;
|
||||||
crl::time sent = 0;
|
crl::time sent = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue