diff --git a/Alyssa.rc b/Alyssa.rc index 255c869..62992b1 100644 --- a/Alyssa.rc +++ b/Alyssa.rc @@ -51,8 +51,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,5,2,0 - PRODUCTVERSION 2,5,2,0 + FILEVERSION 2,5,2,1 + PRODUCTVERSION 2,5,2,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -69,12 +69,12 @@ BEGIN BEGIN VALUE "CompanyName", "Alyssa Software" VALUE "FileDescription", "Alyssa HTTP Server Project" - VALUE "FileVersion", "2.5.2" + VALUE "FileVersion", "2.5.2.1" VALUE "InternalName", "AlyssaHTTP.exe" VALUE "LegalCopyright", "Copyright (C) 2024 Alyssa Software - GPLv3 Licensed" VALUE "OriginalFilename", "AlyssaHTTP.exe" VALUE "ProductName", "Alyssa HTTP Server Project" - VALUE "ProductVersion", "2.5.2" + VALUE "ProductVersion", "2.5.2.1" END END BLOCK "VarFileInfo" diff --git a/AlyssaHTTPServerProject.vcxproj b/AlyssaHTTPServerProject.vcxproj index 18f0776..cc73fb0 100644 --- a/AlyssaHTTPServerProject.vcxproj +++ b/AlyssaHTTPServerProject.vcxproj @@ -81,8 +81,8 @@ true - C:\Users\Tracey2\zlib;C:\Users\Tracey2\wolfssl;$(IncludePath) - C:\Users\Tracey2\zlib\x64;C:\Users\Tracey2\wolfssl\Debug\x64;$(LibraryPath) + C:\Users\Tracey\zlib;C:\Users\Tracey\wolfssl;$(IncludePath) + C:\Users\Tracey\zlib\x64;C:\Users\Tracey\wolfssl\Debug\x64;$(LibraryPath) false diff --git a/CHANGELOG.md b/CHANGELOG.md index abc1275..3a8743d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Alyssa HTTP Server Changelog +## 2.5.2.1 - 18.02.2024 +- Really fixed the integer overflow this time. + ## 2.5.2 - 18.02.2024 - Potential fix to crash caused by SSL on some requests - Connections with SSL now will be logged as '(SSL)' on log file. diff --git a/src/Alyssa.h b/src/Alyssa.h index cf48a40..93c80da 100644 --- a/src/Alyssa.h +++ b/src/Alyssa.h @@ -379,9 +379,9 @@ static const char* MsgTypeStr[] = { "Error: ","Warning: ","Info: " }; #endif #else #ifdef _DEBUG - static std::string version = "2.5.2d"; + static std::string version = "2.5.2.1d"; #else - static std::string version = "2.5.2"; + static std::string version = "2.5.2.1"; #endif #endif #ifdef _WIN32 diff --git a/src/AlyssaHTTP.cpp b/src/AlyssaHTTP.cpp index 04bfeba..f75bcd6 100644 --- a/src/AlyssaHTTP.cpp +++ b/src/AlyssaHTTP.cpp @@ -166,7 +166,7 @@ int8_t AlyssaHTTP::parseHeader(clientInfo* cl, char* buf, int sz) { // Decode percents _pos = cl->RequestPath.size(); // Reusing _pos for not calling size() again and again. if (_pos == 0) { cl->RequestTypeInt = -1; cl->flags |= 3; goto ExitParse; } - for (char t = 0; t < _pos; t++) { + for (unsigned short t = 0; t < _pos; t++) { if (cl->RequestPath[t] == '%') { try { cl->RequestPath[t] = hexconv(&cl->RequestPath[t+1]); @@ -181,14 +181,14 @@ int8_t AlyssaHTTP::parseHeader(clientInfo* cl, char* buf, int sz) { // Sanity checks _pos = cl->RequestPath.find('?');// Query string if (_pos != 65535) { - unsigned char _sz = cl->RequestPath.size(); + unsigned short _sz = cl->RequestPath.size(); cl->qStr.resize(_sz - _pos); memcpy(cl->qStr.data(), &cl->RequestPath[_pos + 1], _sz - _pos - 1); cl->RequestPath.resize(_pos); } else _pos = cl->RequestPath.size(); if (!(cl->flags & (1 << 1))) {// You can't remove that if scope else you can't goto. if ((int)cl->RequestPath.find(".alyssa") >= 0) { cl->RequestTypeInt = -2; cl->flags |= 3; goto ExitParse; } - char level = 0; char t = 1; while (cl->RequestPath[t] == '/') t++; + short level = 0; unsigned short t = 1; while (cl->RequestPath[t] == '/') t++; // Check for level client tries to access. for (; t < _pos;) { if (cl->RequestPath[t] == '/') {