summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNahuel Gomez <contact@nahuelgomez.com.ar>2022-01-25 14:23:58 -0300
committerRico Tzschichholz <ricotz@ubuntu.com>2022-02-16 18:32:51 +0100
commit78ba3e8823bcdbb3cb96b1b5028dce0a7174a107 (patch)
tree4aca0476cef8454ec98a4b8e1a8cf28f19bf11a1
parent55d2050ec4862cba66fcd29adb7b681eef0df643 (diff)
downloadvala-78ba3e8823bcdbb3cb96b1b5028dce0a7174a107.tar.gz
glib-2.0: Fix criticals in string.joinv() with arrays that start with null
-rw-r--r--tests/basic-types/strings.vala3
-rw-r--r--vapi/glib-2.0.vapi2
2 files changed, 4 insertions, 1 deletions
diff --git a/tests/basic-types/strings.vala b/tests/basic-types/strings.vala
index 99136bee1..c11342f11 100644
--- a/tests/basic-types/strings.vala
+++ b/tests/basic-types/strings.vala
@@ -53,6 +53,9 @@ void test_string_joinv () {
s = string.joinv ("-", null);
assert (s == "");
+ s = string.joinv ("-", { null });
+ assert (s == "");
+
// LeakSanitizer -fsanitize=address
sa.length = 3;
}
diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi
index 6b31dca9c..7d9b3c869 100644
--- a/vapi/glib-2.0.vapi
+++ b/vapi/glib-2.0.vapi
@@ -1213,7 +1213,7 @@ public class string {
len += ((!) separator).length * (i - 1);
string* res = GLib.malloc (len);
- void* ptr = string.copy_to_buffer ((void*) res, (!) str_array[0]);
+ void* ptr = string.copy_to_buffer ((void*) res, (str_array[0] != null) ? ((!) str_array[0]) : "");
for (i = 1 ; i < str_array.length ; i++) {
ptr = string.copy_to_buffer (ptr, (!) separator);
ptr = string.copy_to_buffer (ptr, (str_array[i] != null) ? ((!) str_array[i]) : "");