From 50a9c88b791bc3d62d68a29a641fe1a0c0ffab36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sun, 20 Oct 2024 21:45:21 +0200 Subject: [PATCH] core: check that version is not NULL or empty string in function util_version_number --- src/core/core-util.c | 3 +++ tests/unit/core/test-core-util.cpp | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/core/core-util.c b/src/core/core-util.c index d3cbd4a8f..0e11dc26c 100644 --- a/src/core/core-util.c +++ b/src/core/core-util.c @@ -616,6 +616,9 @@ util_version_number (const char *version) int num_items, i, version_int[4], index_buf; long number; + if (!version || !version[0]) + return 0; + items = string_split (version, ".", NULL, WEECHAT_STRING_SPLIT_STRIP_LEFT | WEECHAT_STRING_SPLIT_STRIP_RIGHT diff --git a/tests/unit/core/test-core-util.cpp b/tests/unit/core/test-core-util.cpp index 3303f751c..246218b1f 100644 --- a/tests/unit/core/test-core-util.cpp +++ b/tests/unit/core/test-core-util.cpp @@ -488,6 +488,10 @@ TEST(CoreUtil, ParseDelay) TEST(CoreUtil, VersionNumber) { + LONGS_EQUAL(0, util_version_number (NULL)); + LONGS_EQUAL(0, util_version_number ("")); + LONGS_EQUAL(0, util_version_number ("abc")); + LONGS_EQUAL(0x00030200, util_version_number ("0.3.2-dev")); LONGS_EQUAL(0x00030200, util_version_number ("0.3.2-rc1")); LONGS_EQUAL(0x00030200, util_version_number ("0.3.2"));