From 76fc49a886fb722d5561165c72bf316404d2794e Mon Sep 17 00:00:00 2001 From: orignal Date: Sat, 3 Oct 2026 12:32:28 -0400 Subject: [PATCH] check if Upgrade/upgrade header is complete --- libi2pd_client/HTTPProxy.cpp | 2 +- libi2pd_client/I2PTunnel.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libi2pd_client/HTTPProxy.cpp b/libi2pd_client/HTTPProxy.cpp index 7c0b3210..a68d6b63 100644 --- a/libi2pd_client/HTTPProxy.cpp +++ b/libi2pd_client/HTTPProxy.cpp @@ -353,7 +353,7 @@ namespace proxy /* close connection, if not Connection: (U|u)pgrade (for websocket) */ auto h = req.GetHeader ("Connection"); auto x = h.find("pgrade"); - if (!(x != std::string::npos && std::tolower(h[x - 1]) == 'u')) + if (x == std::string::npos || !x || std::tolower(h[x - 1]) != 'u') req.UpdateHeader("Connection", "close"); } diff --git a/libi2pd_client/I2PTunnel.cpp b/libi2pd_client/I2PTunnel.cpp index 56f5ddd6..3dd60b03 100644 --- a/libi2pd_client/I2PTunnel.cpp +++ b/libi2pd_client/I2PTunnel.cpp @@ -405,7 +405,7 @@ namespace client { /* close connection, if not Connection: (U|u)pgrade (for websocket) */ auto x = line.find("pgrade"); - if (x != std::string::npos && std::tolower(line[x - 1]) == 'u') + if (x != std::string::npos && x && std::tolower(line[x - 1]) == 'u') m_OutHeader << line << "\r\n"; else m_OutHeader << "Connection: close\r\n";