diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-02-04 10:55:31 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-02-27 20:08:22 +0100 |
commit | 20e47159d0ea031539e1476a3ee03e79a54b63f4 (patch) | |
tree | 187a9ecd972f8be3b73bf62cf7278750845fc39c | |
parent | fcbf4d996a7b63692c021fafeea7383b68e5fe40 (diff) | |
download | vala-20e47159d0ea031539e1476a3ee03e79a54b63f4.tar.gz |
tests: Don't leak array if length is -1
Found by -fsanitize=address
-rw-r--r-- | tests/basic-types/strings.vala | 3 | ||||
-rw-r--r-- | tests/methods/bug723195.vala | 3 | ||||
-rw-r--r-- | tests/objects/bug751338.vala | 10 | ||||
-rw-r--r-- | tests/objects/methods.vala | 5 |
4 files changed, 21 insertions, 0 deletions
diff --git a/tests/basic-types/strings.vala b/tests/basic-types/strings.vala index 219dde7c8..5185a9ec3 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_replace () { 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; |