summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-02-04 10:55:31 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2021-02-04 10:55:31 +0100
commitd9a849a7338b45bf9f95128584538d7b02b76ee6 (patch)
tree4a3ad5ac712363132afc0ba19f8bf4b5310bf08c
parent1383402ee5e0c20f1374f12488e1c73a5aafc81b (diff)
downloadvala-d9a849a7338b45bf9f95128584538d7b02b76ee6.tar.gz
tests: Don't leak array if length is -1
Found by -fsanitize=address
-rw-r--r--tests/basic-types/strings.vala3
-rw-r--r--tests/methods/bug723195.vala3
-rw-r--r--tests/objects/bug751338.vala10
-rw-r--r--tests/objects/methods.vala5
4 files changed, 21 insertions, 0 deletions
diff --git a/tests/basic-types/strings.vala b/tests/basic-types/strings.vala
index e1aa55ff1..e1cfd9afb 100644
--- a/tests/basic-types/strings.vala
+++ b/tests/basic-types/strings.vala
@@ -60,6 +60,9 @@ void test_string_joinv () {
s = string.joinv ("-", null);
assert (s == "");
+
+ // LeakSanitizer -fsanitize=address
+ sa.length = 3;
}
void test_string_printf () {
diff --git a/tests/methods/bug723195.vala b/tests/methods/bug723195.vala
index e0676cb29..c7dcf13ac 100644
--- a/tests/methods/bug723195.vala
+++ b/tests/methods/bug723195.vala
@@ -20,4 +20,7 @@ void main () {
assert (string.joinv (":", a) == "foo:bar");
assert (string.joinv (":", null) == "");
+
+ // LeakSanitizer -fsanitize=address
+ a.length = 4;
}
diff --git a/tests/objects/bug751338.vala b/tests/objects/bug751338.vala
index 353071e9d..a766cca95 100644
--- a/tests/objects/bug751338.vala
+++ b/tests/objects/bug751338.vala
@@ -16,6 +16,11 @@ void main() {
assert (strings[0] == "foo");
assert (strings[1] == "bar");
+ // LeakSanitizer -fsanitize=address
+ if (strings.length == -1) {
+ strings.length = (int) strv_length (strings);
+ }
+
f.set("strings", null);
f.get("strings", out strings);
assert(strings == null);
@@ -24,4 +29,9 @@ void main() {
f.get("strings", out strings);
assert (strings[0] == "foo");
assert (strings[1] == "bar");
+
+ // LeakSanitizer -fsanitize=address
+ if (strings.length == -1) {
+ strings.length = (int) strv_length (strings);
+ }
}
diff --git a/tests/objects/methods.vala b/tests/objects/methods.vala
index cfacc9c73..30043e26a 100644
--- a/tests/objects/methods.vala
+++ b/tests/objects/methods.vala
@@ -84,6 +84,11 @@ class Maman.SubBar : Bar {
assert (array[1] == "world");
assert (array.length < 0);
+ // LeakSanitizer -fsanitize=address
+ if (array.length == -1) {
+ array.length = (int) strv_length (array);
+ }
+
ClassTest.run_test ();
return 0;