From a133f767f3ef449c27eeac541b656808d7ce8255 Mon Sep 17 00:00:00 2001 From: neru Date: Wed, 13 May 2026 11:40:46 -0300 Subject: [PATCH] fix: check for pendingUrls desync --- src/proxy/tinymitm/proxy.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/proxy/tinymitm/proxy.cpp b/src/proxy/tinymitm/proxy.cpp index d086954..da09a35 100644 --- a/src/proxy/tinymitm/proxy.cpp +++ b/src/proxy/tinymitm/proxy.cpp @@ -481,7 +481,20 @@ void TinyMITMProxy::handleClient(SOCKET clientSocket) if (complete) { - std::string url = pendingUrls.back(); + if (pendingUrls.empty()) + { + TINYMITM_WRITELOG(error, + "Pending URLs empty but request complete for {}. This shouldn't " + "happen, resetting stream. Buffer size: {}", + host, clientStream.buffer.size()); + + clientStream.buffer.erase(0, totalRequestSize); + clientStream.reset(); + break; + } + + std::string url = pendingUrls.front(); + pendingUrls.pop_front(); std::string headers = clientStream.buffer.substr(0, clientStream.headersEnd + 4); removeHeader(headers, "Accept-Encoding");