1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-12 14:14:48 +02:00

core: fix integer overflow in function util_version_number

This commit is contained in:
Sébastien Helleu
2025-05-08 18:45:18 +02:00
parent 5839df90e7
commit 2c0bbdf9b9
3 changed files with 9 additions and 1 deletions
+1
View File
@@ -6,6 +6,7 @@
- core: fix integer overflow with decimal numbers in calculation of expression
- core: fix integer overflow in base32 encoding/decoding
- core: fix integer overflow in function util_version_number
- core: fix memory leak in function util_parse_delay
## Version 4.6.2 (2025-04-18)
+3 -1
View File
@@ -670,7 +670,9 @@ util_version_number (const char *version)
{
if (number < 0)
number = 0;
else if (number > 0xFF)
else if ((i == 0) && (number > 0x7F))
number = 0x7F;
else if ((i > 0) && (number > 0xFF))
number = 0xFF;
version_int[i] = number;
}
+5
View File
@@ -537,4 +537,9 @@ TEST(CoreUtil, VersionNumber)
LONGS_EQUAL(0x01010100, util_version_number ("1.1.1"));
LONGS_EQUAL(0x01010200, util_version_number ("1.1.2"));
LONGS_EQUAL(0x01020304, util_version_number ("1.2.3.4"));
LONGS_EQUAL(0x7EFFFFFF, util_version_number ("126.255.255.255"));
LONGS_EQUAL(0x7FFFFFFF, util_version_number ("127.255.255.255"));
LONGS_EQUAL(0x7FFFFFFF, util_version_number ("128.255.255.255"));
LONGS_EQUAL(0x7FFFFFFF, util_version_number ("255.255.255.255"));
LONGS_EQUAL(0x7FFFFFFF, util_version_number ("999999999.999999999.999999999.999999999"));;
}