summaryrefslogtreecommitdiffhomepage
path: root/tests/custom
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2021-09-21 20:24:05 +0200
committerJo-Philipp Wich <jo@mein.io>2021-09-21 20:25:46 +0200
commit914f54cc61e6b16005cceb9562289be0c80e401b (patch)
treed005f3dfaf20df1d2c417998e3d3f395ff80438a /tests/custom
parent631f00df1189550cca923c3d08885e6a7208d542 (diff)
types: fix invalid memory access on setting non-contiguous array indexes
When setting an array index which is beyond the end of the last currently preallocated chunk and not evenly divisible by the chunk size, the array entries list was not properly reallocated, resulting in invalid memory writes. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'tests/custom')
-rw-r--r--tests/custom/03_bugs/26_invalid_sparse_array_set49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/custom/03_bugs/26_invalid_sparse_array_set b/tests/custom/03_bugs/26_invalid_sparse_array_set
new file mode 100644
index 0000000..4c47039
--- /dev/null
+++ b/tests/custom/03_bugs/26_invalid_sparse_array_set
@@ -0,0 +1,49 @@
+When setting an array index which is beyond the end of the last currently
+preallocated chunk and not evenly divisible by the chunk size, the array
+entries list was not properly reallocated resulting in invalid memory
+writes.
+
+-- Testcase --
+{%
+ for (i = 0; i < 32; i++) {
+ a = [];
+ a[i] = true;
+ print(length(a), "\n");
+ }
+%}
+-- End --
+
+-- Expect stdout --
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+-- End --