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"));