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");