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] == '/') {