From 303bd8b60752ff6fae029e44f47dbd4bad5ec979 Mon Sep 17 00:00:00 2001 From: ebbit1q Date: Sun, 25 Jan 2026 22:05:19 +0100 Subject: [PATCH] detect recursive redirects (#6570) * detect recursive redirects * handle failure with normal failure handler --- .../card_picture_loader_worker_work.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker_work.cpp b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker_work.cpp index d5aac645e..cd41ac27f 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker_work.cpp +++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker_work.cpp @@ -70,16 +70,22 @@ void CardPictureLoaderWorkerWork::picDownloadFailed() void CardPictureLoaderWorkerWork::handleNetworkReply(QNetworkReply *reply) { QVariant redirectTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); + bool redirectFailure = false; if (redirectTarget.isValid()) { QUrl url = reply->request().url(); QUrl redirectUrl = redirectTarget.toUrl(); if (redirectUrl.isRelative()) { redirectUrl = url.resolved(redirectUrl); } - emit urlRedirected(url, redirectUrl); + if (url == redirectUrl) { + qCWarning(CardPictureLoaderWorkerWorkLog) << "recusive redirect detected!"; + redirectFailure = true; + } else { + emit urlRedirected(url, redirectUrl); + } } - if (reply->error()) { + if (redirectFailure || reply->error()) { handleFailedReply(reply); } else { handleSuccessfulReply(reply);